为iOS 7和iOS 8获取根视图控制器的不同框架

时间:2014-10-09 03:34:43

标签: ios ipad ios7 ios8 xib

嗨,我正面临一个奇怪的问题。我正在向Window的RootViewController添加一个UIViewController。 我已将ViewControllerXIB的自动调整设置为MaskAll。当我在横向模式下使用iOS 7在iPad上运行我的项目时,屏幕尺寸为(1024,768)。但是当我使用iOS 8在iPad上运行时,屏幕尺寸为(768,1024)。我无法弄清楚为什么会发生这种情况。由于这个原因,我的ViewController的子视图没有加载正确的屏幕大小,因为我传递了ViewController的屏幕大小。 任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:4)

  

但是当我使用iOS 8在iPad上运行时,屏幕尺寸为(768,1024)。

这是因为在iOS 7及之前,app旋转涉及将旋转变换应用于根视图控制器的视图,而窗口和屏幕仍然固定到设备。但在iOS 8中,整个应用程序完全旋转。这是主要的更改,如果您期望进行旋转变换,它确实可以破坏现有代码。另一方面,它也好得多 - 在iOS 8中,旋转意味着屏幕,窗口,根视图控制器的视图都只是改变大小(它们交换高度和宽度) - 这意味着如果你的应用程序启动到横向它从一开始就具有正确的尺寸。

如果您在iOS 8中需要纯设备坐标,则可以使用新的UICoordinateSpace协议(https://developer.apple.com/library/ios/documentation/UIKit/Reference/UICoordinateSpace_protocol/)获取它们。