J'ai créé un nouveau View Controller, puis ajouté une vue de défilement en tant qu'enfant de la vue racine et défini sur «Leading / Top / Trailing / Bottom Space to Superview» sur 0 pour que la vue de défilement remplisse complètement son parent.
Puis j'ai ajouté un button en tant qu'enfant de la vue de défilement, avec des contraintes d'espace de 15 à "Superview" (c'est-à-dire à la vue de défilement). Je m'attendrais donc à ce que le button ait un espacement de 15 sur les bordures supérieure / gauche / droite, et que le contenu de la vue de défilement se termine au 'bas du button + 15'. Cependant, la largeur du button n'est pas correcte (testé dans Xcode 5 Interface Builder, simulateurs iOS 6/7):
Il ne fonctionne même pas si je contraint le button avec "Equal Width to Superview"! Ne prend toujours pas toute la largeur.
Comment puis-je résoudre ceci?
J'ai trouvé une bonne solution 🙂 La raison de ce comportement est que la vue de défilement adapte sa taille de vue de contenu à ce qui est réellement nécessaire à ses sous-vues, et ne remplira pas la largeur / hauteur automatiquement. Si la largeur doit être remplie, la vue de défilement doit contenir au less une vue remplissant la largeur de l'écran.
Avec ces étapes, j'ai ajouté une vue qui a une largeur égale à la vue défilement (la vue défilement elle-même, pas sa zone d'affichage de contenu), conduisant à mon affichage déroulant finalement à la pleine largeur parce que j'avais ajouté des contraintes 0/0/0/0 "à la vue défilement.