2014-09-21 69 views
0

我有一個應用程序橫向運行。我已經使用下面的代碼來使它在iOS 8上工作。此代碼完美地適用於所有設備的模擬器。但是,當我在iPhone 5設備上運行它時,佈局是錯誤的。在閱讀了其他一些關於這裏和其他地方的問題後,我相信屏幕邊界在橫向模式下運行時已經在iOS 8上交換了,但似乎並非總是如此。iOS 8屏幕邊界設備和橫向模擬器的不同設置

CGRect screenBound = [[UIScreen mainScreen] bounds]; 
CGSize screenSize = screenBound.size; 
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8.0")) 
{ 
    ScreenHeight = screenSize.width; 
    ScreenWidth = screenSize.height; 
} 
else 
{ 
    ScreenHeight = screenSize.height; 
    ScreenWidth = screenSize.width; 
} 

爲什麼模擬器在做一些與設備完全不同的事情?這是否僅影響iPhone 5或所有iPhone/iPad?我無法訪問運行不同iOS版本的所有設備,因此依靠模擬器來提供準確的結果。

有沒有更可靠的方法來實現這個?

回答

0

我已經設法解決這個問題,如下所示。這適用於所有運行iOS 8的iPhone/iPad設備,其中應用程序僅設置爲在橫向模式下運行。不知道爲什麼我最初發布的代碼不起作用。

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

if (screenSize.width > screenSize.height) 
{ 
    ScreenHeight = screenSize.width; 
    ScreenWidth = screenSize.height; 
} 
else 
{ 
    ScreenHeight = screenSize.height; 
    ScreenWidth = screenSize.width; 
} 
相關問題