iOS 7 中 iPad 应用程序启动时的视图宽度错误

Wrong width of view on startup of iPad app in iOS 7

如果您的设备(模拟器或 iPad)处于横向并且您在查询宽度时启动应用程序,您会得到错误的结果。应该得到 1024,但实际上我得到 768,这是完全错误的。在 iOS 8 上,这确实按预期工作。在 iPhone 和 iOS 7 上,视图首先是纵向视图,但随后迅速变为适合我的情况的横向视图。

viewDidLoad 中,我得到 View.Bounds.Size.Width 的尺码。如果旋转设备并查询didRotateFromInterfaceOrientation中的数据,数据是正确的。对于我的应用程序,我在 viewDidLoad 中不需要这个,但在另一种方法中。但在 viewDidLoad 中似乎是相同的行为。

这是怎么回事?如何在 iOS 7 和 iOS 8 上获得正确的视图宽度?

您应该尝试在 viewDidLayoutSubviews: 中获取宽度或在视图层次结构中获取宽度之后的任何其他方法,例如 viewDidAppear:

希望对您有所帮助。