2016-05-17 6 views
1

Kurzversion:Auto-Layout "Update Constraints" -Taste, aber, berechnen Anteil, nicht konstant?

Die Funktion der Schaltfläche ‚Aktualisieren Constraints‘ ist, dass es berechnet/aktualisiert die numerischen Werte eines bestehenden Einschränkung für Sie (basierend auf visuellen Änderungen im Storyboard). Es scheint jedoch nur den Wert 'Constant' zu berechnen/zu aktualisieren. Dies ist im Fall von proportionalen -Mode-Constraints nicht nützlich. Wie benutze ich die 'Update Constraints' Taste, um den 'Multiplikator' numerischen Wert anstatt 'Constant' numerischen Wert zu ändern?


Beispiel alle Zwänge sind richtig an Ort und Stelle. Sie möchten die Höhe eines Artikels ändern. Tun Sie dies visuell durch Ziehen ...

enter image description here

Verwendung 'Update Constraints' ...

enter image description here

es berechnet/aktualisiert den neuen Wert von "Constant" für Sie ...

enter image description here

(Beachten Sie, dass die entgegengesetzte Funktion "Update Frames" ist als o kritisch; es bewegt die visuelle Seite dorthin, wo Sie die Texteingabewerte geändert haben.)

Das ist fantastisch. Aber.

Aber was ist, wenn die Einschränkung in der Tat proportional ist?

so, möchten Sie die Constant Wert auf Null bleiben, und Sie wollen es die Multiplier für Sie neu zu berechnen.

(Ein Blick auf das obige Beispiel, sollte es den Multiplikator von 0,075 werden Ändern 0,08123 zu sagen.)

Gibt es eine Möglichkeit, dies zu tun?

Wie funktioniert die Schaltfläche "Update Constraints" auf den "Multiplikator" und nicht auf die "Constant"? Ist es ein Schlüsselmodifikator oder?

Antwort

1

Vielen Dank für die Ausarbeitung Ihrer Frage.

Die Antwort ist NEIN. Die Schaltfläche "Abhängigkeiten aktualisieren" ändert immer die konstanten Werte der Abhängigkeiten. Dies wird durch die Tatsache unterstützt NSLayoutConstaint 's konstante Eigenschaft ist read write aber multiplier ist readonly.

+0

@JoeBlow Ich übe das nie. Anstatt die Ansicht zu verschieben und Einschränkungen zu aktualisieren, sollten wir die Einschränkungen aktualisieren und dann die Ansicht aktualisieren (falls nicht aktualisiert). – BangOperator

+0

Und ich habe nicht – BangOperator

+0

@JoeBlow Downvote Ich habe meine Antwort aktualisiert. – BangOperator