web-dev-qa-db-fra.com

Prise en charge de l'iPhone 6 et de l'iPhone 6+ avec différentes images d'écran de lancement / de démarrage pour les orientations Portrait et Paysage de l'iPad

Ce que j'ai compris de la documentation disponible et de mes tests, c'est que

  1. Toutes les applications existantes sur iPhone 6 et 6 Plus fonctionnent en mode de compatibilité, ce qui signifie que les API (comme [UIScreen mainScreen] .bounds) renverront 320 x 568 (iPhone 5/5s) toujours dans les nouveaux iPhones (6/6 Plus) et toute l'interface utilisateur est mis à l'échelle à la bonne résolution par iOS.

  2. Pour prendre en charge l'iPhone 6/6Plus, nous devons créer xib pour l'écran de lancement (Fichier-> Nouveau-> Fichier-> UserInterace-> Écran de lancement) et définir le fichier nib comme "Lancer le fichier d'écran".

  3. Nous pouvons définir différentes images pour l'écran de lancement dans le fichier nib de l'écran de lancement en fonction des classes de taille disponibles. [Fondamentalement, des combinaisons de Any, régulière et compacte]

  4. Il n'y a aucun moyen de différencier l'iPad en mode portrait et l'iPad en orientation paysage (les deux sont de largeur régulière et de hauteur régulière). Il n'y a également aucun moyen de différencier l'iPhone 4/4s et l'iPhone 5/s.

Existe-t-il un moyen de prendre en charge le mode iPhone 6/6 Plus et de fournir différentes images de lancement pour iPad en mode portrait et iPad en mode paysage?

Voir aussi le problème similaire ici classes de taille iOS 8 pour paysage iPad

28
msk

Vous n'avez pas besoin d'utiliser le fichier d'écran de lancement pour rendre votre résolution iPhone 6/6+ compatible. Au lieu de cela, vous pouvez sélectionner l'actif LaunchImage comme source d'images de lancement.

Il peut être trouvé dans "Icônes d'application et images de lancement" sous vos cibles:

enter image description here

S'il n'y a pas d'actif LaunchImage, accédez simplement à vos Images.xcassets, faites un clic secondaire (clic droit) et sélectionnez "Nouvelle image de lancement":

enter image description here

Le résultat est quelque chose comme ça:

enter image description here

Il vous suffit maintenant de glisser-déposer vos images pour les résolutions spécifiques que vous souhaitez prendre en charge et de définir l'actif LaunchImage créé comme source.

J'espère que cela aide

À votre santé

34
HorseT

Les catalogues d'actifs fonctionnent actuellement en mode paysage sur iPhone sur ios8 . J'ai eu cette réponse de Apple support:

"Il y a un bogue concernant les images de lancement dans les catalogues d'actifs et les applications qui se lancent en mode paysage sur iPhone. Dans les coulisses, le compilateur de catalogue d'actifs génère la même clé UILaunchImages [1] dans le dernier Info.plist que vous auriez ajouté lorsque vous étiez spécification manuelle des images de lancement. L'une des sous-clés de chaque image de lancement spécifiée sous la clé UILaunchImages est UILaunchImageOrientation, qui est toujours définie sur Portrait par le compilateur de catalogue d'actifs. Cela est logique car les applications sur iPhone se lancent toujours en orientation portrait [2]. Cependant, le lanceur d'applications iOS décide que, puisque votre UISupportedInterfaceOrientations ne contient que UIInterfaceOrientationLandscapeLeft et UIInterfaceOrientationLandscapeRight, il ne recherchera que des images de lancement de paysage sous la clé UILaunchImages, dont il ne trouve aucune.

Puisqu'il n'existe aucun moyen de forcer le compilateur de catalogue d'actifs à spécifier Landscape pour la sous-clé UILaunchImageOrientation des images de lancement de l'iPhone, vous devez continuer à spécifier vos images de lancement en modifiant la liste des propriétés des informations pour votre application comme avant. "

24
Alan Taylor