2017-03-12 1 views
0

아래 코드의 어설 션은 언제 시작됩니까?statusBarOrientation이 UIDeviceOrientation과 다른 점은 무엇입니까?

let orien = UIApplication.shared.statusBarOrientation 

UIDevice.current.beginGeneratingDeviceOrientationNotifications() 

switch UIDevice.current.orientation { 
case .portrait: assert(orien == .portrait) 
case .portraitUpsideDown: assert(orien == .portraitUpsideDown) 
case .landscapeLeft: assert(orien == .landscapeRight) 
case .landscapeRight: assert(orien == .landscapeLeft) 
default: return 
} 

답변

0

앱이 네 방향 모두를 지원하지 않는 경우. UIDeviceOrientation은 앱이 해당 방향을 지원하는지 여부에 관계없이 기기의 방향을 반영합니다. statusBarOrientation은 항상 사용자가 지원하는 방향 중 하나입니다.

예를 들어, 기기가 세로로 위아래로되어 있지만 앱이 해당 방향을 지원하지 않는 경우 UIDeviceOrientation은 portraitUpsideDown이지만 statusBarOrientation은 landscapeLeft가됩니다 (기기가 이전에 있었던 방향 인 경우). 초상화 거꾸로).

아이폰에 회전 잠금 화재 위의 주장을하지 않습니다 - statusBarOrientation 및 UIDeviceOrientation 모두 실제 방향 독립 세로로보고 있지만, 그들은 서로 일관성이있어.

관련 문제