web-dev-qa-db-fra.com

Inégalité Contrainte Ambiguïté

j'ai un problème pour redimensionner UIView avec Autolayout et ses contraintes. J'aimerais changer l'origine (inférieure ou égale à l'original) et la largeur (supérieure ou égale à l'original) mais j'ai ceci: Inequality Constraint Ambiguity

Avez-vous une idée pour résoudre ceci?

merci

view error

constraints error

20
Luca T

J'ai essayé de réduire de plus d'une contrainte de réduction d'espacement vertical pour les écrans 3,5 ". J'ai donc dû créer deux contraintes entre les composants que je voulais réduire sur un écran plus petit. avec une priorité de 1000, l’autre contrainte était la contrainte d’égalité avec une taille spécifique adaptée à un écran de 4 ", mais avec une priorité inférieure de 250.

De cette façon, Xcode cessait de se plaindre et la mise en page se repositionnait correctement sur un écran plus petit.

enter image description here

52
frin

Votre vue est ambiguë horizontalement. Vous ne disposez pas de suffisamment d'informations sur les contraintes horizontales pour que le système propose une seule solution pour votre vue hiérarchique. Dans ce cas, il ne peut pas déterminer quelle marge de la vue ou doit être basée sur les informations de contrainte actuelles. 

Vous devez ajouter une contrainte moins que nécessaire (<1000) soit à la largeur de votre vue, ce qui lui donne une largeur définie ou, ainsi qu'une contrainte d'égalité à votre contrainte de marge gauche. En faisant de la nouvelle contrainte une priorité <1000, cela lui permettra de se mélanger correctement à vos contraintes d’inégalité existantes (qui sont des contraintes obligatoires). Voici une autre question qui est similaire à la vôtre concernant les inégalités.

La taille de la vue sera différente selon que vous ajoutez la nouvelle contrainte à la largeur ou à la marge gauche de la vue. Tout dépend de la manière dont vous souhaitez que votre mise en page se comporte en réponse aux modifications. 

6
larsacus

Cela n’a aucun sens pour le compilateur (et logiquement) car il n’ya aucun moyen de savoir si le programme doit changer x ou width. Faire l’un des deux statiques résoudra votre problème. 

1
Mika

Tout d'abord, vous devez savoir ce que vous voulez faire avec les contraintes. Supprimez les contraintes supérieures à égales qui ne créent pas de scène avec des contraintes inférieures à égales. La vue buz doit définir la contrainte de largeur. soit appliquer la priorité à laquelle la contrainte joue le premier rôle (contrainte supérieure à égale à ou inférieure à égale à).

0
Ravi H Malviya