Disclaimer: J'ai vu une technique tellement qui inclut l'ajout d'un UIView (être appelé ContentView) à l'UISCrollView et de tout mettre dans ce contenuView. Je ne veux pas utiliser cette technique comme je voudrais J'ai un UIVollview sur l'uIView par défaut d'un UIViewController, Son Uiscrollview a 4 contraintes: une de chaque côté (traînant, haut, menant, en bas) afin qu'il glisse à son parent l'uIView.
cela fonctionne! strong> p> Mais quand je veux ajouter un uiImageView à l'Uiscrollview et je le veux Pour être collé à ses côtés parent (traînant, haut, leader) + une hauteur spécifique, maintenant j'ai un problème. p> Il dit: P> Scroll View: Has ambiguous scrollable height
Scroll View: Needs constraints for: X position or width
3 Réponses :
La raison pour laquelle Xcode jette ces erreurs est parce qu'elle ne peut pas calculer Lorsque vous ajoutez une contrainte pour Si nous y pensons comme une maison, la taille de la vue de défilement est essentiellement la taille de la fenêtre, c'est une taille que vous pouvez utiliser pour voir l'intérieur de la maison. Et la taille du contenu est la taille de la maison. C'est pourquoi il n'y a pas de relation entre la taille de la vue de défilement et la taille du contenu de la vue. P>
Vous pouvez corriger votre problème de deux manières, d'abord en définissant la taille du contenu de la vue de défilement de manière programmatique ou en utilisant IB. Bien que, je ne sais pas si la réglage de la réglage de manière programmatique fera taire l'avertissement. Vous pouvez la définir à IB en suivant la réponse ici . Deuxièmes manières impliquant d'ajouter plus de contrainte à votre uiscrollview code> et
UIImageView code> cadre dans l'exécution. p>
uiscrollview code> liée à son superview, il indique à Xcode de dessiner la vue de défilement aussi gros que son superview. Toutefois, lorsque vous ajoutez une contrainte pour
uiImageView code> liée à
UiscrollView CODE> Taille, il indique à XCode de dessiner la vue d'image aussi gros que
Uiscrollview code> Taille du contenu. Veuillez noter que
uiscrollview code> taille et taille du contenu est deux choses différentes. P>
uiImageView code>. En ajoutant une contrainte de fond et une contrainte de largeur, Xcode peut calculer
UiscrollView code> Taille du contenu qui supprimera cet avertissement. P>
Merci! J'ai essayé la première option (le lien), il ne pouvait pas faire taire l'avertissement: / l'astuce avec l'ajout d'un UIView (contentview) à la vision de ScrollView et tout faire dans l'UIView semble être l'option la plus facile (et future si j'ajoute des trucs. dans la vue).
Pour résoudre ce problème, j'ai fait la chose suivante: 1. Inséré une enveloppe de défilement. A donné des contraintes à superview de toutes les directions 2. Inside ScrollView, j'ai ajouté un autre uIView.then, j'ai ajouté des contraintes similaires à SuperView de toutes les directions à UIView. En plus de cela, je lui ai donné une alignement vertical du centre et un alignement horizontalement central. Cela a supprimé les erreurs de contraintes. P>
Cela a fonctionné pour moi. P>
Passez ce qui suit dans votre Storyborad P>
Cela devrait prendre en charge la vision de ScrollView se plaindre de la position X. P>