我对iOS开发很新,我有这个愚蠢的问题。我的宽度为64像素。而iPhone 5模拟器的屏幕宽度为320像素,在模拟器上它需要20%的屏幕宽度。但我知道真正的iPhone屏幕宽度是640像素。这是否意味着我的照片将占据屏幕宽度的10%?
答案 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为您处理差异。