Ajouter une contrainte d'espacement à superview dans Xcode 5

je construis une application iOS en Xcode 5, et j'ai du mal à ajouter des contraintes de mise en page. En Xcode 4.x, je pourrais juste ajouter les espaces leading/trailing/top/bottom à container (superview) à n'importe quel élément de L'interface utilisateur. Maintenant, je n'ai que cette option:

enter image description here

je veux ajouter une contrainte" espace inférieur à superview " à ma vue texte. Il dit: "l'espacement du plus proche voisin", mais je ne veux pas créer une contrainte de "plus proche voisin", je avoir quelque chose d'autre sous mon texte à afficher, et je ne veux pas créer une contrainte. S'il n'y a pas d'autre objet sous ma vue texte, cela ajoute une contrainte au conteneur correctement. 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 déplacer les autres vues en arrière. Si j'ajoute une contrainte entre la vue texte et L'élément UI (un bouton, dans ce cas), cela ne fonctionne pas (tout semble correct: le bouton a un contrainte vers le bas de superview, et la vue de texte a une contrainte d'espacement vertical avec le bouton, et il n'y a pas de contraintes contradictoires). Les éléments de L'interface utilisateur apparaissent hors des limites de l'écran dans des orientations différentes (3,5 pouces) de l'écran. Est-ce qu'il y a un bug avec le constructeur de L'Interface, ou est-ce que je manque quelque chose? Quand j'ai pu tout régler correctement, mes commandes semblent toujours hors limites lorsque je redimensionne les écrans de l'interface builder, mais s'affichent correctement sur simulateur/dispositif à 3,5 pouces. Qu'est-ce que l' "meilleure pratique" de la conception de L'interface utilisateur avec les nouvelles contraintes de constructeur D'Interface dans Xcode 5?

mise à jour: j'ai un peu plus de problèmes dans un autre projet avec la même chose. J'essaie de fixer le guide de mise en page du haut d'une vue exactement en faisant glisser mon contrôle à l'endroit où il est écrit "guide de mise en page du haut", et il essaie d'aler le bas de mon contrôle au Guide de mise en page (par environ -470 points) au lieu d'aler le haut de mon contrôle, qui cela n'a aucun sens, car le contrôle devrait se mettre en page dans des écrans de hauteur variable (par exemple iPhone régulier et de 4 pouces, et les autres mises en page possibles à l'avenir..). Voici une capture d'écran de ce qui se passe:

enter image description here

Et je reçois ce dans les contraintes:

enter image description here

Comment puis-je faire Interface Builder aligner le haut de la vue pour le haut de la page?

UPDATE 2: j'ai trouvé une solution. Je redimensionne d'abord la vue pour diminuer sa hauteur (de sorte que le dessus ne se chevauchera pas ou ne sera pas très proche du guide de mise en page du haut) et puis je CTRL+la traîne vers le guide de mise en page du haut. Il semble fonctionner correctement. Après l'avoir connecté, je redimensionne de nouveau ma vue à la taille désirée et je sélectionne Update Constraints . Cela fonctionne, mais ce n'est toujours pas une solution car il faut redimensionner la vue, connecter, redimensionnement et mise à jour des contraintes.

74
demandé sur Can Poyrazoğlu 2013-09-23 16:21:52

4 réponses

pour ajouter une contrainte entre une vue et sa' superview (comme" bottom space to superview") vous pouvez utiliser le document Outline (la partie gauche du constructeur de L'Interface).

dans le schéma du Document:

  1. maintenez la touche ctrl et déplacez-vous de la vue vers sa' superview (ou vice versa).
  2. sélectionnez les contraintes que vous voulez ajouter (dans cet exemple,"espace inférieur au conteneur").

ctrl-drag from the view to its' superview (or vice versa) Select the constraints you want to add

94
répondu Jarig 2013-09-23 19:10:09

la réponse de Jarig est bonne mais peut parfois conduire à des résultats inattendus comme indiqué dans les commentaires.

une Autre option est de sélectionner la vue enfant:

Éditeur > Broches > Haut de l'Espace de Superview

ou la contrainte que vous voulez.

48
répondu kball 2013-12-03 17:27:15

semble être une contrainte de bord inférieur maintenant. Sélectionnez votre vue et son superview, cliquez sur "Align" et vérifiez les" bords inférieurs "thingy

pic

1
répondu epolyakov 2013-09-23 18:15:31

si vous voulez ajouter des contraintes traînantes ou de tête comme dans Xcode 4 s'il vous plaît Ctrl-drag du centre de la vue à laquelle vous voulez ajouter la contrainte à gauche, droite, Haut ou bas. Vous serez alors présenté une fenêtre dans laquelle vous pouvez sélectionner la contrainte à ajouter (en fonction de la direction dans laquelle vous avez traîné CTRL).

0
répondu AlexR 2013-09-23 19:19:45