J'essaie de corriger ces contraintes dans mon storyboard. J'ai actuellement une vue conteneur qui a quelques contraintes et un positionnement qui fonctionne parfaitement. Il redimensionne en fonction de la taille de l'écran et autres. Cela fonctionne parfaitement.Contraintes iOS Storyboard ne fonctionnant pas comme prévu
Le contrôleur de vue qui est lié à cette vue conteneur est actuellement défini sur Freeform
avec une largeur de 306 et une hauteur de 315. À l'intérieur de ce contrôleur de vue, j'ai une vue défilement avec les contraintes suivantes.
Il devrait prendre le contrôleur toute la vue. A l'intérieur de cette vue déroulante, j'ai beaucoup d'éléments, de boutons, de champs de texte, d'étiquettes, etc. Par exemple, j'ai un champ de texte épinglé en haut de la vue (Top Space to Superview 0). Si j'ai changé le contrôleur de vue de Freeform
à Fixed
, je m'attends à ce que la vue de défilement change de taille (ce qui est le cas), et je m'attends à ce qu'il règle la largeur de ce champ de texte a la même largeur que l'affichage et la vue de défilement (ce n'est pas le cas). Il maintient une largeur de 306. Même s'il est réglé à l'arrière et l'espace menant à superview mis à 0.
Cela crée des problèmes dans les appareils tels que l'iPhone 4S. Je veux que les éléments de cette vue soient rétrécis en termes de largeur pour tenir dans cette vue de conteneur. Mais à la place, il permet juste le défilement horizontal.
Je veux autoriser le défilement vertical puisque c'est un formulaire et il y a beaucoup d'éléments de forme et autres. Donc, pour les appareils plus petits, ils devraient pouvoir défiler vers le bas pour voir tous les éléments. Mais je veux que les éléments se rétrécissent ou s'ajustent en termes de largeur pour s'adapter aux appareils plus petits.
Des idées sur la façon d'y parvenir?
Le contentSize d'une vue de défilement est définie par les contraintes appliquées à son contenu. Donc, si vous voulez que le * contenu * d'une vue de défilement change en fonction de la taille de la vue - par opposition à combien et dans quelle direction il peut défiler - vous devez configurer vos contraintes et/ou repositionner les * éléments de contenu * pour le faire . – DonMag
@DonMag Je ne suis pas sûr de comprendre. Sur le champ de texte, j'ai 'l'espace de fin et de début à superview mis à 0'. Pouvez-vous donner plus de détails sur la façon de résoudre ce problème? Quelles contraintes dois-je ajouter ou modifier pour que cela fonctionne? Parce que je suis à peu près sûr que "trailing and leading space to superview" devrait fonctionner et ce n'est pas le cas, je ne comprends pas du tout. –
Le champ de texte et les autres vues ne sont pas des enfants directs de 'UIScrollView' et ne sont pas contrôlés par sa taille. Ils sont les enfants de la vue du contenu qui se trouve à l'intérieur et "en dessous" de la scrollview. Leurs contraintes sont définies par rapport à cette vue de contenu et si vous voulez les redéfinir, vous devrez changer le contenu. Vous devrez également modifier la taille de contenu de la vue de défilement pour qu'elle corresponde aux limites de la nouvelle vue de contenu. –