【发布时间】:2014-11-07 23:34:47
【问题描述】:
我在 iOS8 中运行的遗留代码遇到了一个奇怪的问题。该代码最初是在 iOS6 之前编写的,故事板之前(使用 nib)并且在 iOS7 上运行没有问题。但是,在 iOS8 上运行时开始出现奇怪的行为。
应用程序设置为仅在横向(左侧或右侧)运行。因此它应该支持从横向左到横向的自动旋转。第一个问题是初始视图控制器是纵向加载的,并且一侧被切断。此问题已通过 AppDelegate 中的以下代码得到解决:
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
[self.window setFrame:[[UIScreen mainScreen] bounds]];
更改这些调用的顺序允许视图控制器以正确的方向加载,并且不会影响在 iOS7 中运行的应用程序。但是,现在当设备旋转 180 度时,我得到以下结果。看图片...
这是初始加载时的应用程序:
在旋转 180 度后,我得到了这种偏移效果:
关于如何解决这个问题的任何想法?同样,在 iOS7 或更早版本中一切正常。谢谢!
【问题讨论】:
-
好吧,这不是“最干净”的解决方案,但应该可以解决问题,您可以使用一些在旋转之前/之后调用的旋转方法将视图控制器的原点设置为
(0, 0)。看看viewWillTransitionToSize:withTransitionCoordinator:方法。 -
您似乎不想将第二张图片作为输出。您是否尝试过使用自动布局?
标签: ios uiviewcontroller ios8 autorotate