2015-03-05 1 views
0

Je développe une application qui cible iOS 6.1 et plus, iPhone et iPad. C'est surtout openGL et utilise GLKit. J'ai un sélecteur de couleur simple pour changer les couleurs. C'est juste un carré avec la couleur, et trois curseurs, rouge, vert et bleu. Je surcharge ViewWillLayoutSubviews pour cela: en mode portrait, le carré est sur le dessus avec les curseurs ci-dessous. En mode paysage, les curseurs se déplacent vers la droite. Sauf que je continue à avoir des comportements inattendus dépendant du simulateur (je n'ai qu'un iPhone 5 iOS 8 et il se comporte bien).Paysage Dimensions du cadre, iOS 7 vs 8 vs 6

J'ai donc écrit un petit code de débogage pour voir ce qui se passait:

- (void)viewWillAppear:(BOOL)animated { 
    currentOrientation = (UIInterfaceOrientation)[[UIDevice currentDevice]orientation]; 
    if (currentOrientation == UIInterfaceOrientationUnknown) { 
     currentOrientation = [UIApplication sharedApplication].statusBarOrientation; 
    } 
    NSLog(@"Device: %@ OS: %@ Orientation: %@", ([SystemInfo deviceType] == iPad)[email protected]"iPad":@"iPhone", 
               ([SystemInfo operatingSystemIs8OrGreater])[email protected]"8":@"7", 
               (UIInterfaceOrientationIsPortrait(currentOrientation)[email protected]"portrait":@"landscape")); 
    NSLog(@"Frame dimensions: width=%d height=%d", (int)self.view.frame.size.width, (int)self.view.frame.size.height); 
    NSLog(@"Bounds dimensions: width=%d height=%d", (int)self.view.bounds.size.width, (int)self.view.bounds.size.height); 

InformationsSystème est juste une petite classe pour retourner des informations système. Je l'ai couru sur les simulateurs iPhone 5 et iPad 2, iOS 7.1 et 8.1, en portrait et en paysage. Voici ce que je suis:


iPhone 5 (7.1)
périphérique: iPhone OS: 7 Orientation: portrait
Dimensions de l'image: width = 320 height = 568
dimensions Bounds: width = 320 height = 568

appareil: iPhone OS: 7 Orientation: paysage
dimensions de la monture: largeur = 568 height = 320
dimensions Limites: largeur = 568 height = 320

iPhone 5 (8.1)
Appareil: iPhone OS: 8 Orientation: portrait
Dimensions de la monture: largeur = 320 height = 568
dimensions Limites: largeur = 320 height = 568

Appareil: iPhone OS: 8 Orientation: paysage
Dimensions de la monture: largeur = 320 height = 568
dimensions Limites: largeur = 320 height = 568

iPAD 2 (7.1)
appareil: iPad OS: 7 Orientation: portrait
dimensions du cadre: largeur = 768 height = 1024
Bornes dimensions: largeur = 768 hauteur = 1024

Appareil: iPad OS: 7 Orientation: paysage
Dimensions du cadre: largeur = 1 024 height = 768
dimensions Limites: largeur = 1 024 height = 768

IPAD 2 (8.1)
Appareil: iPad OS : 8 Orientation: portrait
dimensions de la monture: largeur = 320 height = 568
dimensions Limites: largeur = 320 height = 568

appareil: iPad OS: 8 Orientation: paysage
dimensions du cadre: largeur = 320 hauteur = 568
dimensions Bounds: width = 320 height = 568

comme si iOS Semble 7 me aide en feuilletant les dimensions du cadre à ce qu'ils devraient être, sauf que je suis en les retournant déjà parce que iOS 8 ne . Ce n'est pas grave, je peux m'adapter. Mais j'ai 4 questions:

1) Que fait iOS 6? Je le cible et je n'ai plus le simulateur.

2) Qu'en est-il de l'iPad 2 (8.1) simulateur? C'est donner les mêmes dimensions que l'iPhone 5 (8.1). En conséquence, mon sélecteur de couleur est d'environ 1/4 taille. Devrais-je simplement définir les dimensions à 1024x768 paysage 768x1024 portrait?

3) Que fera iOS 9? (Ou peut-être qu'ils vont passer 9 comme Microsoft et aller directement à iOS X - wow, si je suis confus maintenant, ce sera vraiment quelque chose.)

4) Quelles seront les dimensions de la prochaine génération de iPads? Puis-je compter sur 1024 et 768? Il me vient à l'esprit d'exécuter le code contre le simulateur iPad Retina, et les résultats étaient exactement les mêmes que l'iPad 2.

Merci d'avance. Je sais que c'est un peu similaire à d'autres questions, mais elles me semblaient toutes très vagues.

Répondre

0

Ah, je pense que je l'ai. Dans le storyboard, il y a une boîte intitulée "Taille du contenu" dans laquelle vous pouvez cocher "Utiliser la taille explicite préférée". Je suppose que c'est vérifié par défaut. Décochez-la et iOS 7 et 8 se comportent de la même manière. Je vais deviner iOS 6 aussi.

Je voudrais savoir à ce sujet il y a une semaine !!! Je n'ai toujours pas compris pourquoi les iPads sur iOS 8 envoient 320x568 comme dimensions à mon sélecteur de couleur (il charge à partir d'une plume et j'ai l'impression que le problème est là).