web-dev-qa-db-fra.com

Xcode 6 GM iPhone 6 Simulator - Les story-boards ne redimensionnent pas correctement

J'utilise le nouveau Xcode 6 GM Seed et je teste mon application sur les simulateurs iPhone 6 et iPhone 6 Plus. Je reçois un effet étrange sur certains projets sur lesquels je travaillais auparavant, à savoir que les vues semblent avoir un effet de "zoom avant". 

Voici un exemple. Ces deux contrôleurs de vue sont exactement les mêmes (moins le texte d'élément de navigation différent), jusqu'à la taille du texte de l'étiquette. Cependant, vous pouvez voir que les vues semblent différentes.

zoomé

Ordinaire

Notez que le projet avec l'effet de zoom bizarre a une cible de déploiement de 8.0.

Note: J'ai eu l’aspect normal de fonctionner en créant le projet dans le nouveau Xcode 6 GM Seed (les projets qui ne fonctionnent pas ont été réalisés sur des versions antérieures de Xcode).

18
arcticmatt

C'est la valeur par défaut et c'est ainsi que toutes les applications existantes fonctionneront sur les nouveaux iPhones: elles seront "zoomées".

Pour créer une application qui utilise réellement la taille d'écran supplémentaire, vous devez, comme pour les iPhones 4 ", ajouter des images de lancement spécifiques aux deux iPhone 6.

Si vous utilisez des catalogues d'actifs, accédez au catalogue d'actifs LaunchImages et ajoutez les nouvelles images de lancement des deux nouveaux iPhones. Vous devrez peut-être cliquer avec le bouton droit de la souris et choisir "Ajouter une nouvelle image de lancement" pour afficher un emplacement où ajouter les nouvelles images.

De plus, l'utilisation d'un fichier xib Launch Screen à la place des images résout ce problème immédiatement et constitue la méthode recommandée pour aller de l'avant. Voici les étapes à suivre pour ajouter un écran de lancement à votre application: https://stackoverflow.com/a/25763870/422288

22
rmaddy

Il ne semble pas que Apple ait mis à jour la documentation pour les nouvelles tailles d’image de lancement, mais vous pouvez les trouver à partir de Xcode. Si vous ajoutez les nouvelles images de lancement comme indiqué par Maddy, vous pouvez afficher les nouvelles tailles dans le panneau de l'inspecteur. iOS 8 inclut trois nouvelles images et ne nécessite pas d'images différentes si la barre d'état est masquée au lancement. Les tailles sont:

iOS 8 iPhone Portrait
Retina HD 5.5  1242x2208
Retina HD 4.7  750x1334

iOS 8 Landscape
Retina HD 5.5  2208x1242

Vous pouvez les ajouter dans Xcode ou modifier le fichier json dans le fichier .xcassets et déposer les images dans le package. Si vous choisissez de modifier le package, ajoutez ces lignes en haut du fichier:

{
      "extent" : "full-screen",
      "idiom" : "iphone",
      "subtype" : "736h",
      "filename" : "[email protected]",
      "minimum-system-version" : "8.0",
      "orientation" : "portrait",
      "scale" : "3x"
    },
    {
      "extent" : "full-screen",
      "idiom" : "iphone",
      "subtype" : "736h",
      "filename" : "[email protected]",
      "minimum-system-version" : "8.0",
      "orientation" : "landscape",
      "scale" : "3x"
    },
    {
      "extent" : "full-screen",
      "idiom" : "iphone",
      "subtype" : "667h",
      "filename" : "[email protected]",
      "minimum-system-version" : "8.0",
      "orientation" : "portrait",
      "scale" : "2x"
    }

J'ai conservé la convention d'appellation qu'ils utilisaient auparavant pour les fichiers de portrait. Il n’existait jamais d’option paysage pour les téléphones, j’ai donc conservé la convention de dénomination pour les iPad. Bien sûr, vous pouvez les nommer comme vous voulez.

Modifier: notez que le seul téléphone qui se lancera en mode paysage est l’iPhone 6 Plus. Les autres téléphones ne se lanceront qu'en mode portrait.

2
JScarry

Ajouter Launch Image ne résout pas ce problème.

Vous devez ajouter LaunchScreen.xib dans le projet et ajouter Launch screen interface file base name - LaunchScreen à Info.plist

Créez un nouveau projet avec Xcode 6 GM. Vous verrez ce qu'est LaunchScreen.xib. Vous pouvez le copier dans votre projet existant.

2
Vince Yuan

la plupart de ce que @rmaddy a dit fonctionne, mais lorsque je vais dans Images.xcassets pour configurer LaunchImage, je sélectionne simplement "LaunchImage" et sélectionnez "Inspecteur des attributs". étapes fonctionne également pour les icônes d'application

1
0oneo

@JScarry, votre solution est correcte, mais ne permet pas d'afficher une image de paysage sur iPhone 6. Voici une solution qui fonctionne (elle nécessite que les images de paysage et de portrait soient dans la même dimension 350x667, l'image de paysage doit être juste tourné)

0
Maciek Czarnik

Pour moi, le problème est résolu:

Je devais cliquer à la fois sur le projet et sur la cible, puis changer la famille de périphériques ciblés pour désigner non seulement l'iphone, mais également les iPad. Seulement alors le zoom grossi est parti

 enter image description here