为什么self.view.frame.size.width在模拟器上没有变化?

时间:2013-07-16 10:37:42

标签: objective-c cocoa-touch ios4

我将此语句添加到ViewDidLoad:

NSLog(@"Screen resolution: (%f, %f)", self.view.frame.size.width, self.view.frame.size.height);

这是模拟器的“Device”属性为“iPhone”时得到的结果:

  

屏幕分辨率:(320.000000,548.000000)

当我将它设置为“iPhone(Retina 4英寸)”时也是如此:

  

屏幕分辨率:(320.000000,548.000000)

但为什么呢?屏幕分辨率应该不同吗?

2 个答案:

答案 0 :(得分:2)

这是因为分辨率以点而非像素打印

对于视网膜显示1 point = 2 pixels

对于常规显示1 point = 1 pixel

答案 1 :(得分:0)

您应该使用UIScreen来检查屏幕分辨率:

[[UIScreen mainScreen] bounds].size.height
[[UIScreen mainScreen] bounds].size.weight

正如其他答案一样,提到分辨率是以点而不是像素来衡量的。