Je construis une application iOS dans Xcode 5 et je ne parviens pas à ajouter des contraintes de présentation. Dans Xcode 4.x, je pourrais simplement ajouter des espaces de début/fin/haut/bas au conteneur (superview) à n’importe quel élément de l’UI. Maintenant, je n'ai que cette option:
Je souhaite ajouter une contrainte "espace inférieur au supérieur" à ma vue de texte. Il dit "espacement au plus proche voisin", mais je ne veux pas créer de contrainte pour "plus proche voisin", j'ai autre chose sous ma vue de texte et je ne veux pas créer de contrainte avec cela. S'il n'y a pas d'autre objet sous ma vue de texte, cela ajoute correctement une contrainte au conteneur. Mais si j'essaie de changer quelque chose, tout se gâte: je dois déplacer toutes les vues ailleurs, puis ajouter la contrainte, puis ajouter, puis déplacer les autres vues vers l'arrière. Si j'ajoute une contrainte entre la vue texte et l'élément d'interface utilisateur (un bouton, dans ce cas), cela ne fonctionne pas (tout semble bien: le bouton a une contrainte au bas de la vue d'ensemble, et la vue texte a une contrainte d'espacement vertical avec le bouton, et il n'y a pas de contraintes conflictuelles). Les éléments de l'interface utilisateur apparaissent en dehors des limites de l'écran dans différentes orientations (3,5 pouces). Existe-t-il un bogue avec Interface Builder ou manque-t-il quelque chose? Lorsque je pouvais tout configurer correctement, mes contrôles semblaient toujours hors de portée lorsque je redimensionnais les écrans du générateur d'interface, mais ils s'affichaient correctement sur un simulateur/périphérique à 3,5 pouces. Quelle est la "meilleure pratique" de conception de l'interface utilisateur avec les nouvelles contraintes Interface Builder dans Xcode 5?
PDATE: J'ai des problèmes supplémentaires dans un autre projet avec la même chose. J'essaie de corriger une vue du haut vers le haut du guide de disposition en appuyant sur CTRL, en faisant glisser mon contrôle jusqu'à l'endroit où il est indiqué "top layout guide", et j'essaie d'aligner le bas de mon contrôle sur le guide de présentation (d'environ -470 points) au lieu d’aligner le haut de mon contrôle, ce qui n’a aucun sens car le contrôle doit se présenter lui-même sur des écrans à hauteur variable (par exemple, un iPhone ordinaire ou 4 pouces, et les autres dispositions possibles à l’avenir ...). Voici une capture d'écran de ce qui se passe:
Et je reçois ceci dans des contraintes:
Comment faire pour que Interface Builder aligne le haut de la vue sur le guide de disposition supérieur?
PDATE 2: J'ai trouvé une solution de contournement. Je redimensionne d'abord la vue pour en réduire la hauteur (afin que son sommet ne se chevauche pas ou ne soit pas très proche du guide de présentation supérieur) et ALORS je CTRL + déplace le curseur vers le guide de présentation supérieur. Cela semble fonctionner correctement. Une fois la connexion établie, je redimensionne ma vue à la taille souhaitée et sélectionnez Update Constraints
. Cela fonctionne, mais ce n'est toujours pas une solution car cela nécessite de redimensionner la vue, de se connecter, de redimensionner à nouveau et de mettre à jour les contraintes.
Pour ajouter une contrainte entre une vue et son aperçu (par exemple, "espace inférieur à l'affichage supérieur"), vous pouvez utiliser la structure du document (la partie gauche du constructeur d'interface).
Dans l'aperçu du document:
La réponse de Jarig est bonne mais peut parfois conduire à des résultats inattendus, comme indiqué dans les commentaires.
Une autre option consiste à sélectionner la vue enfant et à accéder à:
Éditeur> épinglette> espace supérieur à Superview
ou n'importe quelle contrainte que vous voulez.
Semble être une contrainte de bord inférieur maintenant. Sélectionnez votre vue et son aperçu, appuyez sur "Aligner" et cochez la case "Bords inférieurs".
Si vous souhaitez ajouter des contraintes de fin ou de début, comme dans Xcode 4, faites glisser CTRL du centre de la vue à laquelle vous souhaitez ajouter la contrainte à gauche, à droite, en haut ou en bas. Une fenêtre apparaîtra dans laquelle vous pourrez sélectionner la contrainte à ajouter (en fonction de la direction dans laquelle vous avez fait glisser CTRL).