2014-09-28 105 views
14

我正在嘗試爲iPhone 6和6 Plus專門構建我的應用程序版本,而我沒有任何硬件,我必須在模擬器上進行測試!但似乎,模擬器有一個奇怪的錯誤!第一,對於大多數我得到的屏幕分辨率和比例,通過這個代碼:在模擬器上檢測iPhone 6/Plus時出現問題

UIScreen *mainScreen = [UIScreen mainScreen]; 
NSLog(@"Screen bounds: %@, Screen resolution: %@, scale: %f, nativeScale: %f", 
     NSStringFromCGRect(mainScreen.bounds), mainScreen.coordinateSpace, mainScreen.scale, mainScreen.nativeScale); 

所以這裏是如何檢測iPhone 6和6Plus(肖像模式):

#define iPhone6 ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone && [UIScreen mainScreen].bounds.size.height == 667) 

#define iPhone6Plus ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone && [UIScreen mainScreen].bounds.size.height == 736) 

問題!當我的午餐我的應用程序上iPhone6 /加模擬器,編譯器給我的iPhone 4" 顯示的sceen信息:

2014-09-28 12:32:08.153 WOD[2924:42290] 
Screen bounds: {{0, 0}, {320, 568}}, Screen resolution: <UIScreen: 0x7fa15be0f9b0; bounds = {{0, 0}, {320, 568}}; mode = <UIScreenMode: 0x7fa15bd0d4a0; 
size = 640.000000 x 1136.000000>>, scale: 2.000000, nativeScale: 2.000000 

但它正常工作的新項目(我不能創建一個新的項目,並重新開始! ) 我cleaned code,delete build folder,change project's name,並重置Simulator contents setting但仍然給我4「顯示的信息! 。

我檢查了這個Q/A但答案需要一個真實的設備!

+0

你在xcode 5中創建了這個項目,並在6中打開...對嗎? – 2014-09-28 09:22:25

+0

@FahimParkar是的,我做到了! – 2014-09-28 09:23:48

+2

您是否嘗試添加啓動屏幕?即使是MainStoryboard也沒問題。 – Phillip 2014-09-28 09:36:41

回答

21

我面對這個問題的主要原因是我建立我的應用程序與Xcode 5Xcode 6

解決方案打開:

添加啓動圖像視網膜HD 5.5和4.7:

enter image description here

現在,您可以在模擬器上檢測到iPhone 6/Plus,而無需使用真實設備:

#define iPhone6 ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone && MAX([UIScreen mainScreen].bounds.size.height,[UIScreen mainScreen].bounds.size.width) == 667) 
#define iPhone6Plus ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone && MAX([UIScreen mainScreen].bounds.size.height,[UIScreen mainScreen].bounds.size.width) == 736) 
+0

兄弟同樣的事情發生時,iPhone 5來...這是唯一的解決方案...但我忘了:D :) – 2014-09-28 11:19:56

+0

你需要添加圖像的右大小,或者你必須使用啓動屏幕http:// stackoverflow。 COM /問題/ 25754942 /如何對實現本機分辨率換應用上-iphone-6和6加 – onmyway133 2015-01-12 18:37:47

2

以防萬一你需要在橫向檢測iPhone 6/6Plus,使用此。

#define iPhone6 ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone && MAX([UIScreen mainScreen].bounds.size.height,[UIScreen mainScreen].bounds.size.width) == 667) 
#define iPhone6Plus ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone && MAX([UIScreen mainScreen].bounds.size.height,[UIScreen mainScreen].bounds.size.width) == 736) 
相關問題