J'essaie de placer UITextView dans UIScrollView avec AutoLayout sans succès. Ce que j'ai essayé, c'est
self.textViewHeightConstraint.constant = [self.textView sizeThatFits:CGSizeMake(self.textView.frame.size.width, FLT_MAX)].height;
UITextView prend de la hauteur, mais pas UIScrollView. Y a-t-il quelque chose que j'ai manqué?
Il semble que cette question a une réponse qui a fonctionné pour un certain nombre de personnes. Cependant, il convient de noter que la documentation indique:
Placer une vue de texte à l'intérieur d'une vue de défilement. Les vues de texte gèrent leur propre défilement. Vous ne devez pas incorporer d'objets de vue de texte dans les vues de défilement. Si vous le faites, un comportement inattendu peut en résulter, car les événements tactiles des deux objets peuvent être mélangés et mal gérés.
Avant d'essayer de mettre une UITextView
dans une UIScrollView
, vous devez vous demander si cela est vraiment nécessaire. Si la vue de texte fait partie d'une présentation complexe dans la vue de défilement, notez l'utilisation du conteneur UIView
dans la réponse acceptée.
Voir aussi: Défilement des vues à l'intérieur des vues de défilement
J'ai un exemple concret de calcul de hauteur pour UITextView dynamic height + à l'intérieur de UIStackView qui se trouve à l'intérieur de UIScrollView ici: https://github.com/fassko/ScrollStackViewExample
La solution ci-dessus de Sodbileg fonctionne, mais vous n'avez pas besoin de toutes ses étapes. J'ai fait défiler ma vue défilement avec une vue texte à l'intérieur en suivant ses étapes jusqu'à l'étape 7. Pour l'étape 8, j'ai ajouté les 4 contraintes mais pas la hauteur (n'oubliez pas la contrainte du bas !!). Je n'ai pas fait le reste.
Je ne suis pas sûr, mais il semble que la hauteur de la vue texte s’ajuste automatiquement au lieu de devoir la modifier manuellement.