【发布时间】:2015-04-30 13:48:16
【问题描述】:
iOS 模拟器测试 iOS 7.1 和 iOS 8.2 环境时出现了一个奇怪的问题。当我尝试获取 iPhone 5s 的屏幕尺寸时,结果有所不同。这是模拟器中的错误吗?还是这就是 iOS 7 和 iOS 8 的区别?
非常感谢您的建议。
我的代码:
override func viewDidLoad() {
super.viewDidLoad()
println("Screen bounds: \(UIScreen.mainScreen().bounds)")
iPhone 5s (8.2) 模拟器打印结果:
屏幕边界:(0.0,0.0,320.0,568.0)
iPhone 5s (7.1) 模拟器打印结果:
屏幕边界:(0.0,0.0,320.0,480.0)
并且有顶部和底部的黑带占据模拟器iOS 7.1屏幕。
【问题讨论】:
-
在 iOS 8.x 上,引入了 UIScreen.mainScreen().nativeBounds。看看吧
-
我认为 iOS8 中的
nativeBounds与之前 iOS 版本中的bounds相同,因为 iOS8 中的bounds与方向相关。然而,nativeBounds似乎并没有促成这里的奇怪行为。在 7.1 模拟器中运行的其他应用程序呢?如果顶部和底部的黑色条带仍然存在,我想这很可能是模拟器的错误。否则,您可能需要检查 iOS7.1 应用的配置。 -
我建议您使用启动画面然后运行您的代码。使用飞溅后,这个黑堤问题将得到解决,您也将获得正确的高度。