1

내 iOS 앱에 대해 두 가지 UI 사양이 있습니다.
다음 시나리오에 대한 방향 변경 (Upsidedown not supported) 문제가 있습니다. 참고로

: 나는 UI에 대한 폭을 설정하고 난 상하 반전
2.change 방향으로 가로 UIDeviceOrientationDidChangeNotification


1.Change 방향을 사용하고 방향 변경을 식별 할 수 self.view.frame.size.width를 사용하여 사용하고 있습니다
(모든 프레임을 settign되지 않음) 3. 세로 방향 변경 (세로 모드 설정 프레임)

다음 단계를 수행하면 UI 프레임이 잘못 배치됩니다.
세로 모드의 경우 너비가 568이됩니다.

이 문제를 해결하는 더 좋은 방법을 제안 해주십시오.다른 방향으로 실행시 프레임을 설정하는 기본 방법

답변

1

boundUIViewController 회전 논리로 처리되므로 회전 할 때 self.view 프레임을 변경하는 것은 좋지 않습니다.

수동 회전에는 willRotateToInterfaceOrientation:duration:didRotateFromInterfaceOrientation: 대리자 메서드를 사용할 수 있습니다.

+0

나는 이것을 구현하려고 이미 시도했지만, 프레임을 변경하기 전에 다른 많은 계산 기능을 수행하기 때문에 프레임을 변경하는 데 시간이 걸린다. willRotateToInterFaceoriention에서 프레임이 잘못 가고있다. 암시. –

+1

duration 인수를 사용하여 Animation으로 '프레임'에 애니메이션을 적용 해보십시오. –

1

당신은 당신의 장치 방향 변경에 나열되어 당신은 UI 회전을 허용하고 UIDeviceOrientation 인터페이스 회전은이를 추가 할 수 있도록 UIInterfaceOrientation

다르다는 것을

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { 
    //update your view's subviews 
} 

참고로 청취 할 필요가 컨트롤러를보고 '지원되는 인터페이스 방향'키에서 가로 및 세로 형식을 지원하는지 확인하십시오. enter image description here

- (BOOL)shouldAutorotate { 
    return YES; 
} 

- (NSUInteger)supportedInterfaceOrientations { 
    return UIInterfaceOrientationMaskAllButUpsideDown; 
}