iPhone模拟器屏幕分辨率vs iPhone屏幕分辨率

时间:2016-03-13 14:28:53

标签: ios iphone ios-simulator

我对iOS开发很新,我有这个愚蠢的问题。我的宽度为64像素。而iPhone 5模拟器的屏幕宽度为320像素,在模拟器上它需要20%的屏幕宽度。但我知道真正的iPhone屏幕宽度是640像素。这是否意味着我的照片将占据屏幕宽度的10%?

2 个答案:

答案 0 :(得分:3)

目标-C:

CGRect screenBounds = [[UIScreen mainScreen] bounds];

夫特:

let screenBounds:CGRect = UIScreen.main.bounds

这将为您提供整个屏幕的分辨率,因此对于较旧的 iPhone,最通常为320x480。即使 iPhone 4 拥有更大的屏幕尺寸,iOS仍然可以提供320x480而不是640x960。

对于 iPhone 6 + / 7 + ,它是414x736(原生界限:1242 * 2208)

对于 iPhone 6/7 ,它是375x667(原生界限:750x1334)

您可以查看" 原生界限"在上面的代码中将bounds更改为nativeBounds

目标-C:

CGFloat screenScale = [[UIScreen mainScreen] scale];

夫特:

let screenScale:CGFloat = UIScreen.main.scale

这将为您提供屏幕比例。对于没有Retina显示器的所有设备,这将返回1.0f,而Retina显示设备将提供2.0f,而iPhone 6 Plus(Retina HD)将提供3.0f。

现在,如果你想获得像素宽度& iOS设备屏幕的高度你只需要做一件简单的事情。

CGSize screenSize = CGSizeMake(screenBounds.size.width * screenScale, screenBounds.size.height * screenScale);

通过乘以屏幕的比例,您可以得到实际的像素分辨率。

答案 1 :(得分:1)

模拟器上的所有内容与设备上的外观完全相同。否则,模拟器会毫无意义,你不这么认为吗?

在所有iOS设备上,您需要区分像素。您可以用点进行所有计算和所有图形命令。 iPhone 5有320 x 568点。每个点使用2 x 2像素显示,以获得更好的图像质量。但是如果你想绘制覆盖整个屏幕的东西,那就是320 x 568点,这就是你在软件中使用的东西。 99.9%的时间,iOS为您处理差异。