iOS 8 次屏幕旋转打乱了视图
iOS 8 screen rotation messes up view
我有一个应用程序,除了一个屏幕外,所有屏幕都是纵向的。在 iOS 8 中,一个横向页面显示正常,直到设备向任何方向旋转。视图在一个奇怪的轴上旋转,并且它的一部分离开了屏幕。
我已经尝试在 viewWillTransitionToSize 中更新视图的框架,但这只会导致更多问题,将子视图的框架更改得非常疯狂。
一些解决方案建议这样做:
- (void)applicationDidChangeStatusBarOrientation:(NSNotification *)notification
{
[UIViewController attemptRotationToDeviceOrientation];
}
但这对我不起作用。有任何想法吗?谢谢!
违规行将在您的 AppDelegate didFinishLaunchingWithOptions 函数中,如下所示:
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
请试试这个。
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}
这将允许左右横向(但自 iOS6 后已弃用)。
或者这个,但我没有测试它。
- (BOOL)shouldAutorotate {
return NO;
}
我有一个应用程序,除了一个屏幕外,所有屏幕都是纵向的。在 iOS 8 中,一个横向页面显示正常,直到设备向任何方向旋转。视图在一个奇怪的轴上旋转,并且它的一部分离开了屏幕。 我已经尝试在 viewWillTransitionToSize 中更新视图的框架,但这只会导致更多问题,将子视图的框架更改得非常疯狂。 一些解决方案建议这样做:
- (void)applicationDidChangeStatusBarOrientation:(NSNotification *)notification
{
[UIViewController attemptRotationToDeviceOrientation];
}
但这对我不起作用。有任何想法吗?谢谢!
违规行将在您的 AppDelegate didFinishLaunchingWithOptions 函数中,如下所示:
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
请试试这个。
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}
这将允许左右横向(但自 iOS6 后已弃用)。
或者这个,但我没有测试它。
- (BOOL)shouldAutorotate {
return NO;
}