我在 iOS 7 和 iOS 8 中都运行了以下代码:
UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation]; BOOL landscape = (orientation == UIInterfaceOrientationLandscapeLeft || orientation == UIInterfaceOrientationLandscapeRight); NSLog(@"Currently landscape: %@, width: %.2f, height: %.2f", (landscape ? @"Yes" : @"No"), [[UIScreen mainScreen] bounds].size.width, [[UIScreen mainScreen] bounds].size.height);
以下是 iOS 8 的结果:
Currently landscape: No, width: 320.00, height: 568.00 Currently landscape: Yes, width: 568.00, height: 320.00
与 iOS 7 中的结果比较:
Currently landscape: No, width: 320.00, height: 568.00 Currently landscape: Yes, width: 320.00, height: 568.00
是否有任何文件说明此更改?或者它是 iOS 8 API 中的一个临时错误?
是的,它在 iOS8 中取决于方向,而不是错误。您可以查看 WWDC 2014 中的会话 214 以获取更多信息:“查看 iOS 8 中的控制器进步”
演讲中的引述:
UIScreen 现在是面向界面的: