2015-06-20 68 views
1

我的项目已为所有iPhone iOS7,iOS8启动图像。iPhone6的屏幕尺寸在模拟器上返回375

反正它一直在模拟器的屏幕宽度返回错误的值:

NSLog(@"%f",[UIScreen mainScreen].bounds.size.width); 
    NSLog(@"%f",self.view.frame.size.width); 

都始终是375.0。

我失去了什么?

+0

你期待什么价值? @ 1x iPhone 6屏幕宽度为375像素宽。 – Ryan

+0

我期望能像我一样拥有真正的价值 - 750 – Curnelious

+0

那么在一些项目中你是如何得到750和其他375?我需要的尺寸不是像素的 – Curnelious

回答

4

iPhone6的实际屏幕尺寸为750像素,但iOS不会返回帧或边界中的像素尺寸,而是返回点的尺寸!

如果你想知道一个点上有多少像素,你必须使用[UIScreen mainScreen].scale

对于iPhone6plus来说,这更加复杂,因为它还引入了“原生比例”。一切都被吸引到一个更大的图像,并减少到iPhone 6实际拥有的1920x1080屏幕。为此,您可以使用[UIScreen mainScreen].nativeScale [小心,原生比例仅适用于iOS8,如果您在iOS上使用它,则您的应用程序会崩溃。]

P.S.如果您没有使用任何闪屏图像(-568h @ 2x除外),则iPhone 6和6+的分辨率为320x568。