2012-12-10 96 views
1

我想知道如何使用屏幕尺寸我可以檢測到的是iPhone 5.我的應用程序此刻在iPhone 5上使用3.5英寸接口,所以當我使用代碼iPhone 5:想找出iPhone 5的屏幕尺寸

CGSize result = [[UIScreen mainScreen] bounds] .size;

這給了我400而不是568屏幕尺寸的高度。那是因爲我在iPhone 5上使用3.5英寸接口。我知道我需要更改應用程序的佈局,但由於時間限制,我想保持這種方式。

或做我需要得到比例因子,以獲得真正的像素

CGFloat的screenScale = [[UIScreen mainScreen]規模]。

請幫助...

回答

4

你可以伊斯利檢測的iPhone,iPhone5的和iPad有以下條件: -

if([[UIDevice currentDevice]userInterfaceIdiom]==UIUserInterfaceIdiomPhone) 
{ 
    if ([[UIScreen mainScreen] bounds].size.height == 568) 
    { 


    } 
    else 
    { 
     //iphone 3.5 inch screen 
    } 
} 
else 
{ 
     //[ipad] 
} 

只需訪問我的答案來源與這個 Detect device type

1
CGRect screenBounds = [[UIScreen mainScreen] bounds]; 
if (screenBounds.size.height == 568) 
    // 4-inch 
else 
    // 3.5-inch 
+0

我可以檢查的型號電話,而不是... http://support.apple.com/kb/HT3939?viewlocale=en_US&locale=en_US – LittleFunny

0

如果該項目不符合新的默認圖像包括[email protected],iPhone 5將報告定期分辨率480x320的屏幕尺寸。

閱讀此線程 How to detect iPhone 5 (widescreen devices)?

+0

是的,但所有不用於4英寸的接口變得拉伸.. – LittleFunny

+0

不,它沒有。它以3爲中心。iPhone 5屏幕上的5英寸接口。上方和下方的像素均爲黑色。 – Anton

+0

@Simon你在真實設備上檢查過嗎?至少在Xcode 4.5的最初版本中,我看到了設備和模擬器之間的不同行爲。 – Tommy

0

佈局應能適應這種不檢查的設備類型,將盡快打破蘋果決定再次改變它的外形。

使用自動調整大小(從自動佈局不同,但所有的,如果這是爲您提供更好的),並在此是不夠的子類UIView和覆蓋-layoutSubviews,使用9補丁等。做到這一點,我認爲沒有真正的需要了解設備是iPhone 4還是iPhone 5.

0

首先,直到您爲應用程序中的iPhone 5指定加載圖像,它將像iPhone 4一樣運行,並在返回{320,480}時返回你叫[UIScreen mainScreen]界限] .size

其次,你應該使用範圍:

CGSize screenSize = [[UIScreen mainScreen] bounds].size; 

您可能還需要考慮到狀態欄的高度:

CGFloat statusBarHeight = ([UIApplication sharedApplication].statusBarHidden ? 0.0f : [UIApplication sharedApplication].statusBarFrame.size.height); 

如果你碰到了屏幕的寬度取決於電流方向(縱向或橫向),你應該翻轉的寬度和邊界函數返回的高度。

if (UIInterfaceOrientationIsLandscape([UIApplication sharedApplication].statusBarOrientation)) { 
    screenSize = CGSizeMake(screenSize.height, screenSize.width); 
} 
1
instead of find hight you have to use following code to find your device is iPhone 5 or below iphone 5. 

#define IS_IPHONE_5 (fabs((double)[ [ UIScreen mainScreen ] bounds ].size.height - (double)568) < DBL_EPSILON) 
-(void)ViewDidLoad 
{ 
    if(IS_IPHONE_5) 
    { 
     //code of iphone 5 
    } 
    else 
    { 
     //code of below iphone 5 
    } 
}