2014-09-11 57 views
1

所以我試圖更新我的遊戲以適應iPhone 6,我現在看到,當我在iPhone 5模擬器上運行我的遊戲時,所有內容都適合,就好像它是iPhone 4一樣。我使用if語句來確定設備的高度:xcode 6是iphone 5不再568點的高度?

if ((int)[[UIScreen mainScreen] bounds].size.height == 568) 
{ 
    mylabel4.fontSize = 35; 
    mylabel4.position = CGPointMake(CGRectGetMidX(self.frame) -145, CGRectGetMidY(self.frame) -130); 
} else { 
    mylabel4.fontSize = 35; 
    mylabel4.position = CGPointMake(CGRectGetMidX(self.frame) -110, CGRectGetMidY(self.frame) - 130); 
} 

而且就像我說的,當我運行iPhone 5模擬器時,它運行'else'括號中的代碼。它像iPhone 5不再是568點的高度。這工作正常,直到我下載Xcode 6?這裏發生了什麼?

+2

您是否嘗試記錄'[[UIScreen mainScreen]範圍] .size.height'? – rebello95 2014-09-11 03:00:51

+0

@ rebello95你說了什麼,發現了問題。在我的遊戲中,手機打開了一邊。之前,iPhone 5的size.height應該是568,但現在不再了。現在,size.height = 320和size.width = 568,它被切換了。 – user3593148 2014-09-11 03:36:46

+0

我在我的一個應用程序中擁有完全相同的if語句,只需檢查它是否按預期工作。您是否嘗試過rebello95建議並註銷[[UIScreen mainScreen]界限] .size.height? – timgcarlson 2014-09-11 03:37:25

回答

2

UIScreen界限行爲在iOS8中發生了變化。以前它總是會給你縱向的屏幕寬度和高度(所以iPhone 5上的320×568),但是在iOS8中它會給你寬度和高度,無論你在什麼方向,即在風景中,你會得到568 X 320

如果你想要得到的邊界在縱向(像以前一樣),用途:

[UIScreen mainScreen].fixedCoordinateSpace.bounds.size 
-1

只需添加啓動圖像爲iPhone和模擬器將顯示正確的點。奇怪的錯誤。