it-swarm.com.de

Ungleichheitseinschränkung Mehrdeutigkeit

ich habe ein Problem mit der Größenänderung eines UIView mit Autolayout und Einschränkungen. Ich möchte den Ursprung (kleiner oder gleich dem Original) und die Breite (größer oder gleich dem Original) ändern, aber ich habe Folgendes erhalten: Ungleichheit-Einschränkung-Ambiguität

Hast du eine Idee, um das zu lösen?

vielen Dank

view error

constraints error

20
Luca T

Ich habe versucht, mehr als 1 vertikale Abstandsbeschränkung für 3,5-Zoll-Displays zu verkleinern. Daher musste ich zwei Einschränkungen zwischen Komponenten festlegen, die ich auf einem kleineren Bildschirm verkleinern wollte. Eine Einschränkung war die Ungleichung (größer oder gleich), bei der ich die erforderliche Mindestgröße angab. Bei der Priorität 1000 war die Einschränkung die Gleichheit mit einer bestimmten Größe, die für einen 4-Zoll-Bildschirm geeignet ist, aber eine niedrigere Priorität von 250.

Auf diese Weise hörte Xcode auf zu klagen und das Layout wurde auf einem kleineren Bildschirm richtig positioniert.

enter image description here

52
frin

Ihre Ansicht ist horizontal mehrdeutig. Sie verfügen nicht über ausreichende horizontale Einschränkungsinformationen, um nur eine Lösung für Ihre Ansichtshierarchie zu finden. In diesem Fall kann nicht ermittelt werden, welcher Rand der Ansichtsgröße oder links auf den aktuellen Constraint-Informationen basieren muss. 

Sie müssen der Breite Ihrer Ansicht eine Bedingung mit weniger als der erforderlichen Priorität (<1000) entweder hinzufügen, um eine definierte Breite zu erhalten oder Sie fügen Ihrer linken Randbedingung eine Gleichheitsbedingung hinzu. Wenn Sie die neue Einschränkung auf eine Priorität <1000 setzen, kann die neue Einschränkung ordnungsgemäß mit Ihren vorhandenen Ungleichungseinschränkungen gemischt werden (dies sind erforderliche Einschränkungen). Hier ist eine andere Frage die ähnlich ist wie Sie in Bezug auf Ungleichheiten.

Die Größe der Ansicht variiert, je nachdem, ob Sie die neue Einschränkung zur Breite der Ansicht oder zum linken Rand der Ansicht hinzufügen. Dies alles hängt davon ab, wie sich Ihr Layout bei Änderungen verhalten soll. 

6
larsacus

Für den Compiler ist dies (und logisch) nicht sinnvoll, da nicht bekannt ist, ob das Programm x oder width ändern soll. Wenn Sie eine der beiden Statikfunktionen ausführen, wird Ihr Problem gelöst. 

1
Mika

Zuerst müssen Sie wissen, was Sie mit Einschränkungen tun möchten. Entfernen Sie die Einschränkung "größer als gleich", die keine Szene mit einer Einschränkung "weniger als gleich" macht. Buz-Ansicht muss Breitenbeschränkung definieren. Wenden Sie entweder die Priorität an, für die die Einschränkung zuerst die Rolle spielt ("größer als gleich" oder "weniger als gleich").

0
Ravi H Malviya