Construit un nouveau projet à partir de zéro dans Swift dans Xcode 6 (Bêta 1) et j'ai vu un comportement étrange avec les Storyboards et la sortie que je vis.
J'ai construit une interface simple (comme indiqué ci-dessous) - avec les propriétés de View Controller incluses. Lorsque je l'exécute dans le simulateur, je m'attendrais à ce que `` Hello, World '' soit au centre de l'interface utilisateur - cependant, il semble que ce `` Square '' est simplement en train d'être adapté à l'écran de l'iPhone et que la mauvaise vue est donc affichée (voir ci-dessous ).
Ma question est la suivante: est-ce que quelqu'un d'autre a vu ce comportement et comment l'ont-ils corrigé?
Merci!
ios
iphone
interface-builder
xcode6
Barbe à papa
la source
la source
Réponses:
Bien que la réponse d'Asif Bilal soit une solution plus simple qui n'implique pas de classes de taille (qui ont été introduites dans iOS 8.), il est fortement recommandé de vous habituer aux classes de taille car elles sont l'avenir, et vous finirez par sauter de toute façon à certains point."
Vous n'avez probablement pas ajouté les contraintes de mise en page.
Sélectionnez votre étiquette, appuyez sur le bouton des contraintes de mise en page en bas:
Dans ce menu, ajoutez la largeur et la hauteur (elle ne devrait PAS être la même que la mienne) en cochant leur case et cliquez sur ajouter des contraintes. Ensuite, faites glisser votre étiquette vers la vue principale tout en maintenant la touche Contrôle enfoncée, puis lorsque vous dé-cliquez, vous devriez avoir les options pour centrer horizontalement et verticalement dans le conteneur. Ajoutez les deux et vous devriez être configuré.
la source
Suivez les étapes suivantes pour résoudre le problème
Dans Storyboard, sélectionnez n'importe quelle vue, puis accédez à l'inspecteur de fichiers. 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". Cela rendra la taille de la vue du storyboard avec l'appareil sélectionné.
la source
Si vous utilisez Xcode 6 et que vous concevez pour iOS 8, aucune de ces solutions n'est correcte. Pour que les vues de votre iPhone uniquement soient dimensionnées correctement, ne désactivez pas les classes de taille, ne désactivez pas les métriques déduites et ne définissez pas (encore) de contraintes. À la place, utilisez le contrôle de classe de taille, qui est un bouton de texte facile à manquer en bas d'Interface Builder qui lit initialement "wAny hAny".
Cliquez sur le bouton et choisissez Largeur compacte, Hauteur normale. Cela redimensionne vos vues et couvre toutes les orientations de portrait de l'iPhone. La documentation Apple ici: https://developer.apple.com/library/ios/recipes/xcode_help-IB_adaptive_sizes/chapters/SelectingASizeClass.html ou recherchez sur "Sélection d'une classe de taille dans Interface Builder"
la source
Dans Storyboard, sélectionnez votre ViewController et accédez à Atribute Inspector. Tout en haut, sous Mesures simulées, vous avez des propriétés de taille et d'orientation qui sont définies sur Inféré. Modifiez-les aux valeurs souhaitées.
Pour qu'une application s'affiche correctement sur une autre taille d'écran, vous devez également configurer des contraintes, comme décrit par Can Poyrazoğlu dans le premier article.
la source
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 qui ressemble à | -Δ- |. Si vous cliquez dessus, votre projet sera redimensionné pour différents appareils.
la source
Accédez à l'inspecteur d'attributs (coin supérieur droit) dans les métriques simulées, qui ont les propriétés Taille, Orientation, Barre d'état, Barre supérieure, Barre inférieure. Pour SIZE, modifiez Inféré -> Forme libre.
la source
Sur votre page de storyboard, accédez à l'inspecteur de fichiers et décochez `` Utiliser les classes de taille ''. Cela devrait réduire votre contrôleur de vue à la taille normale de l'iPhone que vous connaissez. Notez que l'utilisation de «classes de taille» vous permettra de concevoir votre projet sur de nombreux appareils. Une fois que vous décochez cette case, le Xcode vous donnera une boîte de dialogue d'avertissement comme suit. Cela devrait être auto-explicatif.
"La désactivation des classes de taille limitera ce document au stockage des données pour une seule famille d'appareils. Les données de la classe de taille représentant le mieux l'appareil ciblé seront conservées et toutes les autres données seront supprimées. De plus, les segues seront converties en leur non -équivalents adaptatifs. "
la source
Pour toute personne utilisant XCode 7, il est très facile de concevoir pour une taille de périphérique spécifique (au lieu du canevas carré par défaut).
Dans Interface Builder, sélectionnez votre ViewController ou Scene dans le menu de gauche. Ensuite, sous
Show the Attributes Inspector
, accédez auSimulated Metrics
, et choisissez le désiréSize
dans le menu déroulant.la source
Vous utiliserez probablement "Résoudre les problèmes de mise en page automatique" (icône du triangle en bas à droite dans la vue du storyboard) pour ajouter / réinitialiser les contraintes suggérées (Xcode 6.0.1).
la source