我把这段代码放在我的应用中:
CGRect screenRect = [[UIScreen mainScreen] bounds];
CGFloat screenWidth = screenRect.size.width;
CGFloat screenHeight = screenRect.size.height;
NSLog(@"screenWidth : %f", screenWidth);
NSLog(@"screenHeight : %f", screenHeight);
我用Iphone 3.5英寸启动模拟器。 日志打印宽度为320.000000。
然而,当我为模拟器更换设备时,选择4英寸,它仍然显示相同的宽度。为什么?怎么了。对于Iphone 4及更高版本,它的宽度应该是640像素,不是吗?
答案 0 :(得分:1)
在模拟器中,screenWidth总是320(现在是iphone4-5)。您可以使用[[UIScreen mainScreen] scale]检查比例;
如果你在视网膜iPhone上运行,比例将是2.0。
答案 1 :(得分:1)
根据Apple Docs,该值是“默认逻辑值”。如果您想知道实际尺寸,请查看[[UIScreen mainScreen] scale]
。对于视网膜设备,此值为2.0
,[[UIScreen mainScreen] bounds].size.width * [[UIScreen mainScreen] scale]
答案 2 :(得分:0)
没有宽度总是320点/ DPI - 你的意思是它真的有640个PIXELS(取决于设备)
计算始终基于设备INDEPENDENT点
UIScreen提供了一个scaleFactor,用于翻译dpi<>像素