2017-10-05 9 views
2

우리는 오디오 잭 (또는 iPhone7 이상의 번개 포트)에 연결된 액세서리를 사용하는 앱을 보유하고 있습니다. 특정 방향으로 실행해야합니다. iOS 기기.iPhone X에서 인터페이스 방향을 세로로 거꾸로 회전시킬 수 없음

현재 iPhoneX 시뮬레이터를 제외하고 모든 iPhone 용 시뮬레이터 또는 실제 장치에서 장치 방향을 설정하는 데 문제가 없습니다. 설정 방향에 대한

현재 코드 :

- (BOOL)shouldAutorotate { 
    return YES; 
} 

- (UIInterfaceOrientationMask)supportedInterfaceOrientations 
{ 
    //device checks omitted 
    return UIInterfaceOrientationMaskPortraitUpsideDown; 
} 

Target settings with orientations enabled

스택 추적 : 이것은 아이폰 5, iPhone6, iPhone6 ​​+, iPhone7 및 iPhone7 + 장치 및 iPhone8 시뮬레이터에 노력하고 있습니다

TF uncaught exception reason : Supported orientations has no common orientation with the application, and [RootNavigationController shouldAutorotate] is returning YES 
2017-10-05 09:35:02.692945+0200 [65045:74145368] *** Terminating app due to uncaught exception 'UIApplicationInvalidInterfaceOrientation', reason: 'Supported orientations has no common orientation with the application, and [RootNavigationController shouldAutorotate] is returning YES' 

. iPhone7이 현재 iOS11을 실행하고 있어도 iOS11 문제는 아닙니다. 내가 현재 문제를 겪고있는 유일한 장치는 iPhoneX 시뮬레이터입니다.

+0

iOS 11.2에서 shouldAutorotate는 더 이상 호출되지 않습니다. 모든 이전 로테이션 코드는 더 이상 사용되지 않는 것으로 보입니다. "iOS 8부터는 UIViewController 설명서에서 모든 회전 관련 메서드가 사용되지 않습니다. iPhone X의 회전을 막으려 고 노력하는 데 너무 어려움을 겪고 있습니다. – RickJansen

답변

2

iPhone X는 거꾸로 된 방향을 지원하지 않습니다. https://forums.developer.apple.com/message/268015을 참조하십시오. Apple 직원은 "설계 상으로는이를 반영하기 위해 향후 릴리스에서 설명서를 업데이트 할 예정입니다."라고 말합니다.

적어도 시뮬레이션에서는 오리엔테이션 변경 알림을 받지만 발견 한대로 나쁜 행동이 발생할 수 있습니다. 내 경우에는 예외가 발생하지 않지만 UI는 제대로 다시 그려지지 않습니다.

거꾸로 된 iPhone X를 감지하고 UI 다시 그리기를 방지하는 코드를 추가하고 있습니다. 그것은 sim에서 작동하며, 실제 장치에서 작동하는지 잠시 기다려야합니다 (다행스럽게도, 거꾸로 된 사용 사례는 헤드폰 잭 장치 만 포함하므로 iPhone X의 거꾸로 된 부분이 손실됩니다). 나를 위해 빅딜이 아니다).

조명 포트를 사용하는 센서를 사용하는 사람들은 iPhone X 사용자에게 최소한의 지루한 UI가없는 "적은"iPhone과 동일한 사용성을 제공 할 수 없습니다. 전화를 으로 바꾸거나 뒤집을 수있는 많은 affine 변환이 포함 된 위젯은 이면서이 수행하는 것으로 여전히 일치하는 동안이 거꾸로 나타납니다. 한숨.

+0

Apple이 iPhone 게이지의 ** 스플릿 ** 상태 표시 줄 레이아웃을 변경하는 의미있는 방법을 제시하기에는 너무 게으른 것 같습니다. 노치없는 하단 가장자리에 표시됩니다. –