Je suis en train de construire une application iOS dans Xcode 5, et j'ai du mal à ajouter des contraintes de mise en page. Dans Xcode 4.x, je pouvais simplement ajouter des espaces de gauche/droite/haut/bas par rapport au conteneur (superview) à n'importe quel élément d'interface utilisateur. Maintenant, je n'ai que cette option :
Je veux ajouter une contrainte de "bas à la superview" à ma vue de texte. On dit "espacement au voisin le plus proche", mais je ne veux pas créer une contrainte au "voisin le plus proche", j'ai quelque chose d'autre sous ma vue de texte, et je ne veux pas créer une contrainte avec ça. S'il n'y a aucun autre objet sous ma vue de texte, il ajoute une contrainte au conteneur correctement. Mais si j'essaie de modifier quelque chose, tout se dérègle : je dois déplacer toutes les vues ailleurs, puis ajouter la contrainte, puis remettre les autres vues en place. Si j'ajoute une contrainte entre la vue de texte et l'élément d'interface utilisateur (un bouton, dans ce cas), ça ne fonctionne pas (tout semble correct : le bouton a une contrainte au bas de la superview, et la vue de texte a une contrainte d'espacement vertical avec le bouton, et il n'y a pas de conflit de contraintes). Les éléments d'interface utilisateur apparaissent en dehors des limites de l'écran dans différentes orientations d'écran (3,5 pouces). Y a-t-il un bug avec l'Interface Builder, ou est-ce que je manque quelque chose ? Quelle est la "meilleure pratique" pour concevoir l'interface utilisateur avec les nouvelles contraintes de l'Interface Builder dans Xcode 5 ?
MISE À JOUR : J'ai encore plus de problèmes dans un autre projet avec la même chose. J'essaie de fixer le haut d'une vue au guide de disposition supérieur exactement en faisant un CTRL-glisser de mon contrôle là où il est dit "guide de disposition supérieur", et il essaie d'aligner le bas de mon contrôle sur le guide de disposition (d'environ -470 points) au lieu d'aligner le haut de mon contrôle, ce qui n'a aucun sens car le contrôle devrait se disposer dans des écrans de hauteur variable (par exemple, iPhone régulier et 4 pouces, et les possibles autres mises en page à l'avenir..). Voici une capture d'écran de ce qui se passe :
Et j'obtiens ceci dans les contraintes :
Comment puis-je faire en sorte que l'Interface Builder aligne le haut de la vue sur le guide de disposition supérieur ?
MISE À JOUR 2 : J'ai trouvé une solution de contournement. Je redimensionne d'abord la vue pour diminuer sa hauteur (afin que le haut de celle-ci ne chevauche pas ou ne soit très proche du guide de disposition supérieur) et ENSUITE je la fais glisser avec CTRL vers le guide de disposition supérieur. Ça semble fonctionner correctement. Après l'avoir connecté, je redimensionne à nouveau ma vue à la taille désirée et je sélectionne Mettre à jour les contraintes
. Ça fonctionne, mais ce n'est toujours pas une solution car cela nécessite de redimensionner la vue, de connecter, de redimensionner à nouveau et de mettre à jour les contraintes.