Question

J'ai une application iPad que je voudrais faire Universal, mais cela semble difficile de façon alarmante. J'ai changé les choses pour que je soutiens les deux builds, mais lors de la construction, je reçois beaucoup d'erreurs sur l'utilisation UIPopOvers. Here're mes questions:

  • Pourquoi UI_USER_INTERFACE_IDIOM() ne compile inscrire sur 3.1.3?
  • Puis-je avoir conditionnellement des variables dans une définition de classe basée sur UI_USER_INTERFACE_IDIOM()?
  • Sinon, dois-je faire deux contrôleurs de vue différents?

Merci!

Était-ce utile?

La solution

Pourquoi UI_USER_INTERFACE_IDIOM () non compiler ou vous inscrire sur 3.1.3?

La macro UI_USER_INTERFACE_IDIOM est uniquement disponible à partir de 3,2. Mêmes restrictions pour la propriété userInterfaceIdiom de UIDevice . Cela signifie que vous ne pouvez obtenir une application universelle à partir de SDK 3.2.

Puis-je avoir certaines conditions variables une définition de classe basée sur UI_USER_INTERFACE_IDIOM ()?

Non

. La macro UI_USER_INTERFACE_IDIOM est seulement un raccourci d'exécution pour obtenir le langage d'interface utilisateur actuelle de l'appareil.

Sinon, dois-je faire deux différents Voir les contrôleurs?

Si vous avez très différent interface entre les deux appareils, il est plus sage d'utiliser deux contrôleurs de vue différents, et de créer la bonne lors de l'exécution (dans le contrôleur d'application par exemple) en utilisant la macro UI_USER_INTERFACE_IDIOM.

Autres conseils

J'ai eu assez bonne chance avec juste sélectionner la cible puis aller projet-> Mise à niveau cible actuelle pour iPad.

Mon application est assez simple, composé principalement de vues de table et webviews, mais il vaut la peine de faire une sauvegarde et d'essayer ...

Et oui, vous devez le soumettre comme une application 3.2 qui peut cibler 3.1. *

Il y a aussi beaucoup d'autres choses que vous devez faire: Assurez-vous qu'il peut être consulté à toute orientation (je me suis rejeté la première fois pour cela). Assurez-vous que vous avez toutes les nouvelles images créées. vous devez avoir 3 ou 4 icônes, au lieu d'un seul comme une application iPhone nécessaire. (Icône iPad, iPhone icône, petite icône pour projecteur, etc.). Et bien sûr iPad de taille des captures d'écran pour le magasin.

Une très belle façon que j'utiliser pour tester si elle est un iPad ou iPhone est de vérifier si l'appareil peut utiliser un contrôleur de vue partagé, puisque, pour l'avenir prévisible aucun appareil avec un écran aussi petit que l'iPhone sera en mesure de utiliser le contrôleur de vue partagé. Je viens de créer une fonction pour faire cela pour moi:

+(BOOL)isIpad{ return NSClassFromString(@"UISplitViewController") != nil; }

Alors ne importe où dans mon application que je veux afficher quelque chose de différent en fonction de l'appareil, je fais un chèque pour elle:

int width = 150;
if([NabAppDelegate isIpad]){
   width = 350;
} else {
   width = 150;
}
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(5,10,width,25)];

Ceci est beaucoup mieux que la vérification de la version du système d'exploitation comme je l'ai vu certains suggèrent.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top