2017-12-01 15 views
0

autolayout과 많은 레거시 코드를 사용하지 않는 오래된 프로젝트가 있습니다. 전체 프로젝트의 코드 재 작성을 완료 할 때까지 iPhone X와 호환되도록하고 싶습니다. NotchKit 사용을 생각했지만 기대했던 결과를 얻지 못했습니다. UIApplication 창의 사용자 정의 프레임 (전체 화면의 하위)을 정의하는 방법이 있습니까? 그러면 모든 ViewController가 해당 경계를 존중합니까?UIWindow iPhoneX 사용자 정의 범위

답변

0

당신은 스토리 보드 파일에서 목표 C

if (@available(iOS 11.0, *)) { 
    UIWindow *window = UIApplication.sharedApplication.keyWindow; 
    CGFloat topPadding = window.safeAreaInsets.top; 
    CGFloat bottomPadding = window.safeAreaInsets.bottom; 
    CGFloat leftPadding = window.safeAreaInsets.left; 
    CGFloat rightPadding = window.safeAreaInsets.right; 
} 
+0

내가 만든 각각의 모든 UI에서 패딩을 사용해야합니까? 그것은 내가 가진 목표가 아닙니다. –

+0

https://developer.apple.com/ios/human-interface-guidelines/overview/iphone-x/ – user6788419

+0

내 용도로 사용되지 않습니다. 내가 원하는 것은 범위를 바꾸지 않고 모든 호출을 subview.frame = CGRectMake (0,0, width, height)에서 subview.frame = CGRectMake (leftPadding, topPadding, width, height)로 바꾸는 것이 아닙니다. –

0

에서

신속

if #available(iOS 11.0, *) { 
    let window = UIApplication.shared.keyWindow 
    let topPadding = window?.safeAreaInsets.top 
    let bottomPadding = window?.safeAreaInsets.bottom 
    let leftPadding = window?.safeAreaInsets.left 
    let rightPadding = window?.safeAreaInsets.right 
} 

에서 iPhoneX

의 패딩을 찾을 수 있습니다, 당신은 사용 안전 AreaLayout 가이드에서 확인해야

enter image description here