iOS8上的UIScreen主屏幕在模拟器和实际设备之间的界限不同

时间:2014-09-24 19:11:45

标签: device simulator bounds uiscreen mainscreen

在我使用的iOS7应用中:

screenRect = [[UIScreen mainScreen] bounds];
screenWidth = screenRect.size.width;
screenHeight = screenRect.size.height;

然后我使用screenHeight加载有关设备是iPhone 4还是iPhone 5的不同视图。

主要问题是,当我检查iOS 8的应用程序时,模拟器以横向方向返回交换值,因此screenHeight输入实际上是screenWidth并加载错误的视图。好的我解决了这个问题,但是我们还没有在App Store上进行任何更新,因为应用程序在iOS 8的实际设备上工作正常。它加载了正确的视图。

在iOS7上,具有iOS8 on landscape的实际设备返回值,但在模拟器iOS 8上,值将按原样进行交换。现在我很难决定是否进行更新。

有人知道发生了什么吗?

谢谢你,Matej

1 个答案:

答案 0 :(得分:0)

屏幕坐标现在是基于iOS8的方向。查看WWDC 2014的会议214以获取更多信息:" View Controller Advancements in iOS 8"

来自演示文稿的引用:

UIScreen现在面向接口:

  1. [UIScreen bounds]现在面向接口
  2. [UIScreen applicationFrame]现在面向接口
  3. 状态栏框架通知是面向接口的
  4. 键盘框架通知是面向接口的
相关问题