2014-09-28 12 views
14

Sto provando a creare una versione della mia app specificamente per iPhone 6 e 6 Plus, mentre non ho alcun hardware, devo testare sul simulatore! ma a quanto pare, il simulatore ha uno strano bug! prima e per la maggior parte ho risoluzioni dello schermo e scale, da questo codice:Problema relativo al rilevamento di iPhone 6/Plus sul simulatore

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

ecco come rilevare iPhone 6 e 6Plus (modalità ritratto):

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

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

il problema è! quando ho il pranzo la mia app sul iPhone6 ​​/ più simulatore, compilatore mi dà le informazioni sceen di iPhone 4" display:!

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 

ma funziona bene sul nuovo progetto (non riesco a creare un nuovo progetto e ricominciare da capo! I cleaned code, delete build folder, change project's name e reimposta Simulator contents setting ma mi da ancora le informazioni del display da 4 "! .

Ho controllato questo Q/A ma le risposte richiedono un dispositivo reale!

+0

hai creato questo progetto in xcode 5 e aperto in 6 ... giusto? –

+0

@FahimParkar Sì, l'ho fatto! –

+2

Hai provato ad aggiungere una schermata di avvio? Anche la MainStoryboard va bene. – Phillip

risposta

21

Il motivo principale per cui ho di fronte a questo problema è stato costruisco la mia applicazione con Xcode 5 e aprirlo con Xcode 6

Soluzione:

Aggiungi lancio Immagine per Retina HD 5.5 e 4.7:

enter image description here

Ora è possibile rilevare iPhone 6/Plus sul simulatore senza avere un dispositivo reale:

#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

Brother è successo quando è arrivato iPhone 5 ... questa era l'unica soluzione ... MA Dimentica che: D :) –

+0

È necessario aggiungere immagini con le dimensioni DESTRA, oppure è necessario utilizzare lo schermo di avvio http: // stackoverflow. com/domande/25754942/how-to-enable-native-risoluzione-per-app-on-iphone-6-e-6-plus – onmyway133

2

Nel caso in cui sia necessario rilevare iPhone 6/6Plus in orizzontale, utilizzare questo.

#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) 
Problemi correlati