我的项目有所有 iPhone iOS7、iOS8 的启动图像。
无论如何,它总是在模拟器中返回错误的屏幕宽度值:
NSLog(@"%f",[UIScreen mainScreen].bounds.size.width);
NSLog(@"%f",self.view.frame.size.width);
两者总是 375.0。
我错过了什么?
最佳答案
iPhone6的实际屏幕尺寸为750像素,但iOS返回的不是frame或bounds中的像素尺寸,而是点尺寸!
如果你想知道一个点有多少像素,你必须使用 [UIScreen mainScreen].scale
.
对于 iPhone6plus,这更加复杂,因为它还引入了“原生音阶”。一切都被绘制成更大的图像,并缩小到 iPhone 6 实际拥有的 1920x1080 屏幕。为此,您将使用 [UIScreen mainScreen].nativeScale
[小心,native scale 只在 iOS8 上可用,如果你在 iOS 上使用它,你的应用会崩溃。]
附言如果您没有使用任何启动图像(-568h@2x 除外),您将获得适用于 iPhone 6 和 6+ 的 320x568。
关于ios - iPhone 6 屏幕尺寸在模拟器上返回 375,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30952870/