Ancrage personnalisé UIView en bas de l'écran par rapport à la taille de l'écran

J'essaie actuellement de créer un menu déroulant personnalisé pour l'iPhone que je peux simplement raccorder à n'importe quelle quantité de contrôleurs de vue dans l'éditeur Storyboard Editor, mon code fonctionne comme prévu en termes d'animation/IBActions, mais je ne peux pas semblent ancrer la vue que je souhaite pour l'iPhone 4 pouces Facteur de forme (iPhone 5 et ci-dessus).

J'ai essayé différentes contraintes, mais je n'arrive pas à avoir le point de vue. J'ai supprimé toutes les contraintes par pure frustration à ce stade, de sorte que les deux points de vue sont simplement existants par eux-mêmes pour le moment.

Les captures d'écran ci-dessous montrent mon problème:

iPhone 4/4S voir:

enter image description here

iPhone 5/5C/5S voir:

enter image description here

Comme vous pouvez le voir, la vue en surbrillance dans la vue iPhone 5 montre ce qui devrait être caché hors de l'écran. La solution d'idée que j'espère sera idéalement une sorte de configuration utilisant Autolayout je n'ai pas considéré ou au pire ajoutant plus de code pour positionner le UIView.

Merci d'avance.

3
ajouté édité
Vues: 1

1 Réponses

Vous devez utiliser Autolayout pour cela. Pour commencer, sélectionnez la vue et vous essayez d'épingler le bas de l'écran, et sélectionnez le bouton "Pin" Autolayout, le 3ème bouton de la gauche dans le groupe de boutons en bas à droite de votre capture d'écran. Vous devriez voir ce menu.

Les valeurs peuvent être différentes selon la taille d'écran que vous utilisez et la taille de la vue que vous essayez de contraindre, mais vous devez d'abord sélectionner le menu déroulant pour la contrainte supérieure. Vous devez vous assurer que vous sélectionnez l'option du bas pour contraindre le "Top Layout Guide". Après avoir ajouté cette contrainte à votre vue, vous souhaiterez étendre vos contraintes dans le «Document Outline» d'Interface Builder (la barre de gauche). Sélectionnez la contrainte "Espace vertical" et naviguez jusqu'à "Inspecteur d'attributs" (4ème icône sur la barre de droite). Changez la liste déroulante "Relation" de "Égal" à "Inférieur ou égal".

enter image description here

Ensuite, vous devrez faire quelque chose de similaire pour la contrainte du bas, sauf que cette fois, vous devrez sélectionner l'option "View" de la seconde à la dernière (distance actuelle = 0)

enter image description here

Puis définissez des contraintes pour les côtés si nécessaire. Vous pouvez utiliser le même type de contrainte que pour le bord inférieur, en supposant bien sûr que la barre sera toujours de 320pts de large et centrée horizontalement à l'écran.

3
ajouté
Cela fonctionne comme je le voulais sur les deux appareils de taille ce qui est génial, mais maintenant j'ai un avertissement disant que ma vue a une disposition ambiguë. Est-ce que je peux juste ignorer ceci et continuer dans le bonheur ou est-ce quelque chose que je devrais essayer de résoudre?
ajouté l'auteur Darryl Bayliss, source
Cela fonctionne très bien. Merci beaucoup!
ajouté l'auteur Darryl Bayliss, source
@DarrylBayliss Vous devriez être capable de résoudre cela en ajoutant des contraintes de gauche et de droite. Et si cela résout le problème, s'il vous plaît ne pas oublier de marquer comme correct :)
ajouté l'auteur Mick MacCallum, source