J'ai passé deux jours à essayer les différentes solutions Mixtes et Pures mise en page automatique des approches pour parvenir à ce qui a été une mince scrollview de l'installation avant la mise en forme automatique, et c'est maintenant officiel: je dois être trop bête. Je suis cette mise en place principalement dans le Storyboard (bon, c'est juste la façon dont il est).
Voici donc mon appel à l'aide.
Viewtree:
UIView
-UIView
-UIView
..-UIScrollview
...-UIButton
...-UIButton
...-UIButton
Les boutons sont censés pour faire défiler horizontalement (de gauche à droite et vice-versa). Quelqu'un peut-il svp laissez-moi savoir comment définir les contraintes pour réaliser cela à l'aide de pure mise en forme automatique???
--
J'ai essayé de l'approche mixte, comme ceci:
UIView
- UIView
- UIView
..-UIScrollview
...-UIView (contentview)
....-UIButton
....-UIButton
....-UIButton
...et paramètre fixe la largeur et la hauteur des contraintes pour l' contentview
et de la translatesAutoresizingMaskIntoConstraints
paramètres comme par Apple note technique. Les boutons et le scrollview sont mis en place à l'aide de contraintes. Cela devient la scrollview de défilement (yay), mais hélas, ça défile trop loin! Aussi loin que je peux dire, le défilement largeur est en quelque sorte doublé de ce que j'ai mis le contentview???!!!???
J'ai essayé de la pure mise en forme automatique approche, à la fois avec contentview
et sans. Tous les points de vue sont - translatesAutoresizingMaskIntoConstraints=NO
, sauf pour l' self.view
. Les boutons ont une largeur fixe/contraintes de hauteur, et sont épinglés à tous les quatre bords de la scrollview. Rien de parchemins.
Donc, je suis totalement perplexe pourquoi je ne peux pas le faire fonctionner correctement. Toute aide est très appréciée, et si vous avez besoin d'autres infos, merci de demander!
EDIT @l'Infini James J'ai recréé votre code exactement dans le storyboard, mais il n'est pas de défilement. (La scrollview contentsize.la largeur est enregistré comme 279, btw). Captures d'écran:
containerview contraintes:
le scrollview contraintes:
buttonA contraintes:
Mise à JOUR de Capture d'écran avec la solution buttonZ contraintes:
EDIT @ Jamie Forrest Si la solution s'avère être le tort de fuite contrainte sur le dernier bouton. Au lieu de 6441, la valeur que j'avais mis était négatif, -6441. La chose la plus délicate est, que lors de la fixation de la valeur dans la table de montage séquentiel, il y a deux options dans le code Pin de la barre d'outils:
Le dessin Actuel de la Valeur est négative (ne menant à aucune de défilement), et l'option ci-dessous est positif (activation de défilement). Cela signifie que je ne suis pas stupide, mais au moins à moitié aveugle, je suppose. Bien que, pour ma défense, n'est-ce pas un peu inquiétant que XCode n'indique pas une erreur pour la "mauvaise"?
RÉÉDITÉ Maintenant, c'est drôle... en changeant le point à la valeur de -6441 (pas de défilement) 6441 permis de défilement. Mais mon vieil ami, le "trop de contentsize" était de retour, conduisant à un contenu de taille deux fois plus grande que ce qu'elle devrait être! La solution pour obtenir le contenu de défilement a été de mettre le point à la contrainte à ZÉRO! Ce n'est pas évident lorsque l'on travaille dans le Storyboard, mais en regardant @l'Infini-Jacques-de-code, c'est ce qu'il devrait être.