Comment rendre une vue utilitaire dans interface builder compatible avec l'iphone5 4 pouces, et l'ancien iPhone 4/4s ?
Il existe trois options dans Xcode 4.5 :
- Freeform
- Retina 3.5 plein écran
- Retina 4 plein écran
Si j'ai choisi Retina 4, alors dans le téléphone de 3,5 pouces, il traverse ou dépasse le bord de l'écran.
En utilisant le code, je peux définir le cadre en conséquence, mais alors quelle est l'utilité d'utiliser le constructeur d'interface ?
Comment faire en utilisant Interface Builder ?
EDIT
Ma question concerne l'écran 4 pouces de l'iphone 5 retina. En inspectant la taille de la vue qui a une barre d'état et une barre de navigation, voici la valeur de self.view.frame.size.height/width, frame 320.000000 x 416.000000 dans le cas où je choisis freeform/none/retina 3.5
Les options de redimensionnement automatique sont définies de manière à ce que la vue s'étende dans toutes les directions, c'est-à-dire que tous les supports et ressorts sont activés.
EDIT Pour le test dans le simulateur iOS6, si je place ce qui suit dans le code
self.tableView.frame = CGRectMake(0, 0, 320, 546);
self.tableView.bounds = CGRectMake(0, 0, 320, 546);
self.view.frame = CGRectMake(0, 0, 320, 546);
self.view.bounds = CGRectMake(0, 0, 320, 546);
NSLog(@"%2f - %2f", self.view.bounds.size.width, self.view.bounds.size.height);
NSLog(@"%2f - %2f", self.tableView.bounds.size.width, self.tableView.bounds.size.height);
J'obtiens le résultat suivant
320.000000 - 546.000000
320.000000 - 546.000000
Toutes les lignes situées en dessous de 480 px du haut ne sont pas sélectionnables, car la "vue" pense toujours qu'elles sont hors limites.
MA SOLUTION
Définissez la taille sur Retina 4 pour tous les écrans, même le fichier xib de la fenêtre principale. Cela semble fonctionner correctement même sur l'iphone 4 après cela. Et toutes les lignes inférieures à 480px sont maintenant cliquables dans le simulateur iOS 6.