2017-10-11 13 views
6

iPhone X를 지원하도록 앱을 조정하고 있습니다. 맞춤보기 컨트롤러가있는 공유 확장 프로그램이 있습니다. 기기의 안전 영역 인세 트를 알아야하지만 이 표시되어 있지 않으므로 UIApplication.shared.keyWindow 으로 전화하여 UIWindowsafeAreaInsets 메소드를 공유 확장에 사용할 수 없습니다. 내 공유 확장의 safeAreaInsets 속성 값을 알 수있는 방법이 있습니까?공유 확장 프로그램의 안전 영역 인셋 감지

답변

1

safeAreaInsets은 모든 UIView의 속성입니다. 당신은 Share Extension에서 그것을 사용할 수 있습니다. SafeAreaInsets에 대해 UIApplication.shared.keyWindow을 묻지 않아도됩니다. 실제로는 키 윈도우에 UINavigationController 또는 UITabBarController이 포함되어 있기 때문에 safeAreaInsets에 영향을 미칠 수 있습니다. 당신이 당신의 UIView 계층 구조에 깊은 뷰가있는 경우

는 그 safeAreaInsets는 계층 구조의 상위 뷰에서 찾고, 그 중 하나가보기와 중복 safeAreaInsets이있는 경우보고에 의해 계산된다.

public override func safeAreaInsetsDidChange() { 
    if #available(iOS 11.0, *) { 
     super.safeAreaInsetsDidChange() 
     self.setNeedsUpdateConstraints() // or self.setNeedsLayout, etc. 
    } 
} 
: -

당신은 safeAreaInsets은, 그러나, 찾을 수

처음 UIEdgeInsets.zero은 싶은거야 것은 같은, UIView.safeAreaInsetsDidChange() 또는 UIViewController.viewSafeAreaInsetsDidChange()을 구현입니다