web-dev-qa-db-fra.com

Xcode 6 Storyboard de la mauvaise taille?

Construit un nouveau projet à partir de zéro dans Swift dans Xcode 6 (version bêta 1) et a constaté un comportement étrange avec Storyboards et le résultat affiché.

J'ai construit une interface simple (comme indiqué ci-dessous) - avec les propriétés de View Controller incluses. Lorsque j'exécute ceci dans le simulateur, je suppose que "Hello, World" occupe une position centrale dans l'interface utilisateur. Toutefois, il semble que ce "Carré" soit simplement inséré dans l'écran de l'iPhone et qu'une vue erronée soit affichée (voir ci-dessous). ).

Ma question est: est-ce que quelqu'un d'autre a vu ce comportement et comment l'a-t-il corrigé?

Merci!

View from the Storyboard Editor

Attributes Inspector

Size Inspector

Simulator Output

139
Candyfloss

Alors que la réponse d'Asif Bilal est une solution plus simple qui ne comporte pas de classes de taille (introduites dans iOS 8.), il est fortement recommandé de s'habituer à la taille des classes car elles sont le futur, et vous finirez par y arriver de toute façon à un moment donné. "


Vous n'avez probablement pas ajouté les contraintes de mise en page.

Sélectionnez votre étiquette, appuyez sur le bouton des contraintes de présentation en bas:

enter image description here

Dans ce menu, ajoutez la largeur et la hauteur (cela ne devrait PAS être le même que le mien) en cochant la case correspondante et en cliquant sur Ajouter des contraintes. Ensuite, maintenez la touche Ctrl enfoncée et faites glisser votre étiquette vers la vue principale. Lorsque vous dé-cliquez, vous devez disposer des options permettant de centrer horizontalement et verticalement dans le conteneur. Ajouter les deux, et vous devriez être mis en place.

81
Can Poyrazoğlu

Suivez les étapes suivantes pour résoudre le problème

Dans Storyboard, sélectionnez une vue, puis accédez à l'inspecteur de fichier. Décochez la case "Utiliser les classes de taille", vous demanderez de conserver les données de classe de taille pour: iPhone/iPad. Et puis cliquez sur le bouton "Désactiver les classes de taille". Faire ceci fera la taille de vue du storyboard avec le périphérique sélectionné.

253
Asif Bilal

Si vous utilisez Xcode 6 et concevez pour iOS 8, aucune de ces solutions n'est correcte. Pour que les vues de votre iPhone uniquement soient correctement dimensionnées, ne désactivez pas les classes de taille, désactivez les mesures inférées et ne définissez pas (encore) de contraintes. Au lieu de cela, utilisez le contrôle de classe de taille, qui est un bouton de texte facile à manquer au bas d’Interface Builder qui lit initialement "wAny hAny".

Cliquez sur le bouton et choisissez Taille compacte, hauteur normale. Ceci redimensionne vos vues et couvre toutes les orientations de portrait de l'iPhone. La documentation d'Apple ici: https://developer.Apple.com/library/ios/recipes/xcode_help-IB_adaptive_sizes/chapters/SelectingASizeClass.html ou recherchez "Sélection d'une classe de taille dans Interface Builder".

18
Eli Burke

J'ai eu ce problème dans xcode 6 et il existe un moyen de résoudre les conflits de redimensionnement. Si vous sélectionnez votre vue, vous verrez en bas une icône ressemblant à | -Δ- |. Si vous cliquez dessus, votre projet sera redimensionné pour différents appareils.

5
user2961953

Dans Storyboard, sélectionnez votre ViewController et accédez à l'inspecteur d'attributs. Tout en haut, sous Métriques simulées, vous avez les propriétés Taille et Orientation définies sur Inféré. Modifiez-les aux valeurs souhaitées.

Pour qu'une application puisse s'afficher correctement sur une autre taille d'écran, vous devez également définir des contraintes, comme décrit par Can Poyrazoğlu dans le premier message.

5
David Andrews

Accédez à l’Inspecteur des attributs (coin supérieur droit) dans la métrique simulée, qui possède les propriétés Taille, Orientation, Barre d’état, Barre supérieure, Barre inférieure. Pour TAILLE, changez Inféré -> Forme libre.

3
Rachel

Sur votre page de scénario, accédez à l'inspecteur de fichiers et décochez la case "Utiliser les classes de taille". Cela devrait réduire votre contrôleur de vue à la taille habituelle de votre iPhone. Notez que l'utilisation de 'classes de taille' vous permettra de concevoir votre projet sur de nombreux périphériques. Une fois cette case décochée, le Xcode vous donnera un dialogue d’avertissement comme suit. Cela devrait être auto-explicatif.

"La désactivation des classes de taille limitera ce document à l'enregistrement des données d'une seule famille de périphériques. Les données de la classe de taille représentant le mieux le périphérique ciblé seront conservées et toutes les autres données seront conservées. En outre, les ligues seront converties en leurs équivalents non adaptatifs. "

3
Ohmy

Pour ceux qui utilisent XCode 7, il est très facile de concevoir une taille de périphérique spécifique (au lieu du canevas carré par défaut).

Dans Interface Builder, sélectionnez votre ViewController ou votre scène dans le menu de gauche. Ensuite, sous Show the Attributes Inspector, accédez au Simulated Metrics et sélectionnez la Size souhaitée dans le menu déroulant.

3
Priest

Vous devrez probablement utiliser "Résoudre les problèmes de mise en page automatique" (icône en bas à droite - triangle dans la vue Storyboard) pour ajouter/réinitialiser les contraintes suggérées (Xcode 6.0.1).

2
swnn