2014年2月12日 星期三

[Xcode] 取得螢幕畫面尺寸 Device Screen Size

原本只有iPhone 4以下的幾種與iPod時,螢幕尺寸很單純,所以可能只需要知道現在使用的是iPhone/iPod或iPad,因為就只有這兩種尺寸。但是當iPhone 5出來之後,螢幕的比例被拉長了,開發者不可能任由設置的圖檔在不同的裝置中被裁切,甚至是壓縮變形,影響美觀,更會影響使用者的感受,因此,我們必須判別不同的螢幕尺寸,來做適當的應對。
可以透過UIScreen類別來處理,如下
CGSize screenSize = [[UIScreen mainScreen] bounds].size;
/* 分解動作是這樣:
CGRect screenBound = [[UIScreen mainScreen] bounds];
CGSize screenSize = screenBound.size;
*/
CGFloat screenWidth = screenSize.width;
CGFloat screenHeight = screenSize.height;
screenSize的width與height屬性可以分別取得裝置螢幕尺寸的寬與高,但其實不管是iPhone 5或是iPhone Classic螢幕寬度尺寸是一樣的(320.0f),所以我們只要用螢幕高度去判斷目前的裝置即可,方法如下:
if (screenSize.height > 480.0f) 
{
   // iPhone 5
   NSLog(@"iPhone 5");
} 
else 
{
   // iPhone Classic
   NSLog(@"Not iPhone 5")
}
iPhone 5的螢幕高度會是568.0f,而iPhone Classic的是480.0f,所以只要偵測到的高度大於480.0f,便可得知目前使用的是iPhone 5系列裝置。將上述程式碼中的紅字部分替換成你需要執行的動作,就趕緊執行看看吧~

相關參考資料:
官方UIScreen Class Reference:link
How to detect if the device is an iPhone 5(包含判斷iPhone或iPad):link

沒有留言:

張貼留言