2016-03-13 297 views
0

我對iOS開發很新,我有這個愚蠢的問題。我有一個64像素的圖片寬度。而iPhone 5模擬器的屏幕寬度爲320像素,在模擬器上它佔用屏幕寬度的20%。但我知道真正的iPhone屏幕寬度是640像素。這是否意味着我的照片會佔用屏幕寬度的10%?iPhone模擬器屏幕分辨率vs iPhone屏幕分辨率

回答

3

的Objective-C:

CGRect screenBounds = [[UIScreen mainScreen] bounds]; 

斯威夫特:

let screenBounds:CGRect = UIScreen.main.bounds 

這會給你的整個屏幕在分辨率的點,所以它最典型的爲320x480,480x800爲年長的iPhone。即使iPhone 4具有更大的屏幕尺寸iOS仍然會給出320x480而不是640x960。

對於iPhone 6 +/7 +,它是414x736(天然界限:1242 * 2208)

對於iPhone 6/7,它是375x667(天然界限:750x1334)

你可以通過改變bounds檢查 「原生界」 以nativeBounds在上面的代碼

的Objective-C:

CGFloat screenScale = [[UIScreen mainScreen] scale]; 

斯威夫特:

let screenScale:CGFloat = UIScreen.main.scale 

這會給你的屏幕比例。對於沒有視網膜顯示器的所有設備,這將返回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

模擬器上的所有內容與設備上的外觀完全一致。否則,模擬器將是毫無意義的,你不這麼認爲嗎?

在所有iOS設備上,您需要區分個點像素。你可以完成所有的計算和所有的圖形命令。 iPhone 5擁有320 x 568點。每個點使用2 x 2像素顯示,以獲得更好的圖像質量。但是如果你想畫一些覆蓋整個屏幕的東西,那就是320×568點,這就是你在軟件中使用的東西。 99.9%的時間,iOS爲您處理差異。