2017-10-03 5 views
10

xcode 9를 사용하여 새로운보기 컨트롤러를 만드는 중입니다. 이제는 몇 가지 안전한 영역을 처리해야합니다.ios 11의 안전하지 않은 영역 배경색을 설정하는 방법

현재 안전하지 않은 영역을 그대로 유지하는 것을 의미합니다 (항상 상태 표시 줄을 표시하기 때문에). 배경색을 전체 화면으로 확장하는 것은 (이전과 비슷한 동작을 유지하기 위해) 있다).

추가로 시스템이 검은 색으로 표시되는 안전하지 않은 아래쪽 영역에 놓이게되면 페이지 컨트롤에 영향을 미칩니다.

배경색이 안전하지 않은 영역 뒤로 확장되는 방법을 찾을 수 없습니다. 의견이 있으십니까?

답변

8

그것은 해키 트릭처럼 보이지만 당신이 시도 할 수 귀하의 배경색하지만 UI 뷰의 안전 영역에 수퍼로 설정해야합니다
을 당신 응용 프로그램 실행 중 또는보기 컨트롤러의 viewDidLoad 중에 상태 표시 줄의 배경색을 설정할 수 있습니다. 여기 그것이 나를 위해, 다음과 같은 방식으로 작동합니다. 여기

extension UIApplication { 

    var statusBarView: UIView? { 
     return value(forKey: "statusBar") as? UIView 
    } 

} 


or 
// Set it from your view controller if you've view controller based statusbar 
class ViewController: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     UIApplication.shared.statusBarView?.backgroundColor = UIColor.green 
    } 

} 


// Set upon application launch, if you've application based status bar 
class AppDelegate: UIResponder, UIApplicationDelegate { 

    var window: UIWindow? 

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 
     UIApplication.shared.statusBarView?.backgroundColor = UIColor.green 
     return true 
    } 
} 



는 결과입니다

enter image description here

+1

굉장! 고마운 친구 –

5

다른 제한 조건을 적용해야합니다. 배경색은 안전 영역 너머까지 수퍼 뷰까지 확장되어야합니다. 그래서 제약 (버튼, tableViews 등)

+0

젠장, 당신은 –

+1

경우, 컨테이너 마진 기본적으로 안전한 지역에 빌어 먹을 시스템 셋톱를 얻기 위해 Ctrl 키를 눌러 감사가 그것을 가지고 IB에서이 작업을 수행하고 있다면 문서 개요에서 제한 조건을 선택하고 속성 검사기를 사용하여 Superview에서 안전 영역으로 변경하십시오. – pesch

+0

확인해 드리겠습니다. –