2013-07-16 50 views
0

我加了這個聲明viewDidLoad中:爲什麼模擬器上的self.view.frame.size.width不會改變?

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

這裏的結果我得到當模擬器的 「設備」 屬性是 「iPhone」:

屏幕分辨率:(320.000000,548.000000)

同樣的事情時,我將它設置爲 「iPhone(視網膜4英寸)」:

屏幕分辨率:(320.000000,548.000000)

但是爲什麼?屏幕分辨率是不是應該不同?

+0

因爲視圖的自動修改是關閉的? – Desdenova

回答

2

這是因爲該決議,印在點,而不是在像素

對於視網膜顯示1 point = 2 pixels

對於定期顯示1 point = 1 pixel

0

您應該使用UIScreen檢查屏幕顯示:

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

而這裏的其他答案提到分辨率是以點而不是像素來衡量的。

+0

這不是他所要求的。只要高度是548.000000,他正在打印正確的高度 –

+0

@GeorgeSach在他的日誌中寫道屏幕分辨率......並非所有視圖都是用屏幕尺寸定義的,並且可能會產生看起來不正確的結果。他也沒有說明他期望的分辨率(也許他知道點數/像素分辨率),iPhone 4英寸視網膜和iPhone之間的分辨率高度應該是不同的 – giorashc

相關問題