J'ai:
J'ai un avertissement dans le générateur d'interface "A une largeur de contenu défilable ambiguë" .
Je sais que le seul moyen de résoudre ce problème est de définir des contraintes de fin et principales . Mais pour différents iPhones (5,5 ", 4,7", 4 "), je dois définir différentes contraintes de fin et de tête.
Comment puis-je éliminer cet avertissement tout en conservant une vue centrée horizontalement avec les valeurs W et H fixes pour toutes les tailles d’iPhone?
Je crée un repo Github pour illustrer ce problème: ScrollViewAmbigous
Ceci n'est pas une copie de UIScrollView Ambiguïté de la taille du contenu défilable , Mais similaire (et pas répondu), mais cette question concerne en particulier différentes tailles d'iPhones.
Le matin, avec une tasse de café fraîche, j’ai trouvé une solution de contournement pour ce problème!
Has ambiguous scrollable content width
et Has ambiguous scrollable content height
avertissements gênants.Important: vous devez ajouter des contraintes de fin et/ou de fond. Pas "leader et top" - ça ne marche pas!
Vous pouvez le vérifier dans mon exemple de projet, montrant comment résoudre ce problème: ScrollViewAmbigous
P.S.
Je ne sais pas pourquoi cela fonctionne et comment Xcode détecte quelle contrainte est la plus prioritaire (parce que je ne donne pas la priorité à ces contraintes explicitement), mais je serai reconnaissant si quelqu'un explique, pourquoi cela fonctionne dans les commentaires ci-dessous.
Problème :
Solution :
Ajoutez des contraintes strictes (fixes) à ce 'contentView'.
Meilleure pratique: égaler la largeur et la hauteur de la vue de défilement.
Il semble y avoir beaucoup de confusion sur cette question. Mon point de vue est qu’UIScrollView doit avoirDEUXcontraintes de fin d’espace, une connexion «interne» le reliant à une de ses sous-vues (afin qu’il puisse connaître la largeur de son contenu) et une autre «externe» le connectant un frère ou une soeur afin qu'il connaisse la largeur de son cadre.
Le même principe s’applique pour la hauteur, c’est-à-dire deux contraintes d’espace inférieur.