J'ai un UIView dans mon UIViewController dans le storyboard auquel je souhaite ajouter une contrainte pour espacer cette vue à une distance du bord supérieur.
Maintenant, quand je fais la normale en ctrl + glissant dans la vue principale du ViewController, je ne dispose que de l'option pour le définir comme guide de disposition supérieur.
C'est un problème pour moi car à un moment de l'application, je vais déplacer la vue principale de 20 à 50 pixels et ce qui se passe ensuite est que cette vue ne bouge pas ... car elle ne correspond pas à Superview.
Comment puis-je le faire manuellement dans le storyboard ou dois-je l'ajouter par programme?
Je suis en utilisant xcode 6.
Il y a une flèche à droite de la valeur de la constante de contrainte. Si vous cliquez dessus, un menu apparaît vous permettant de choisir le type de contrainte que vous souhaitez utiliser. Si vous choisissez "Affichage", il sera épinglé en haut de la vue.
Vous devriez pouvoir le faire en mettant en surbrillance la vue souhaitée dans le storyboard, puis en sélectionnant Editor > Pin > Top Space to Superview
dans le menu du haut.
Ceci est obsolète dans XCode 7, voir la réponse de @PaulGurov à la place.
TL; DR: Vous pouvez limiter la marge en appuyant sur la touche Alt touche du clavier.
On peut également ajouter que si la vue que vous essayez d'épingler n'est pas une sous-vue directe de la vue à laquelle vous souhaitez l'épingler, l'approche suggérée n'est pas vraiment valable. Supposons que la hiérarchie des vues ressemble à cela et que vous souhaitez épingler la vue d'image (Parallax Image View
dans ce cas) à la vue du contrôleur de vue (View
dans ce cas).
Pour faire cela vous venez Control + Drag du Parallax Image View
au View
. Cela présente les choix par défaut où vous pouvez voir Vertical Spacing to Top Layout Guide
pour épingler le Parallax Image View
au guide de disposition supérieur.
Ce que vous voulez, c'est l'épingler en haut (marge) de la vue. Pour ce faire, vous devez passer à l’autre ensemble de contraintes en appuyant sur Alt
La réponse de Dan fonctionne. Je voulais simplement dire que si vous définissez votre vue dans storyBoard à y <20 et que vous configurez des contraintes via le panneau des épingles, cela placera top en tête:
Aucune des réponses ci-dessus n'a fonctionné pour moi, mais je dois faire un bidouillage pour définir le haut de ma sous-vue avec celui de Superview plutôt qu'avec le guide de disposition Top.
Vous êtes prêt à partir maintenant.
Si la hauteur de la vue est définie sur 0 par accident, le guide de mise en espace verticale en haut ne s'affiche PAS. Un guide de mise en page verticale vers le bas apparaîtra, ce qui doit avoir du sens pour quelqu'un dans Apple vers 2004.