Schnelle Aktualisierungseinschränkung

8

Ich habe die Einschränkung zu den Schaltflächen hinzugefügt, die in meinem UIView

erstellt wurden %Vor%

In My Project können meine Benutzer diese Schaltflächen verschieben und dann habe ich versucht, den erkannten Schaltflächen weitere Einschränkungen hinzuzufügen, aber ich erhalte nur eine endlose Fehlerbeschränkung

%Vor%

Wird versuchen, durch Aufhebung der Einschränkung

wiederherzustellen %Vor%

Wird versuchen, durch Aufhebung der Einschränkung

wiederherzustellen %Vor%

... sollte ich newButtonConstraintX / Y aktualisieren, aber ich verstehe nicht, wie ich das machen kann?

    
stack 09.01.2015, 21:26
quelle

3 Antworten

15

Das Problem besteht darin, dass Sie eine neue Einschränkung hinzufügen, die mit der vorhandenen Einschränkung in Konflikt steht.

Sie haben ein paar Optionen:

  1. Ab iOS 8 können Sie die Eigenschaft active für eine Einschränkung auf false setzen, bevor Sie eine neue Einschränkung hinzufügen.

  2. In älteren iOS-Versionen als 8 sollten Sie die alten Einschränkungen entfernen, bevor Sie neue Einschränkungen hinzufügen.

  3. Im Idealfall ist es am besten, Constraints nicht aktivieren / deaktivieren (oder, schlimmer, hinzufügen und entfernen), sondern nur die constant -Eigenschaft einer einzelnen Constraint ändern. Zum Beispiel in Swift 3/4:

    %Vor%

    Wenn der gewünschte Effekt erreicht werden kann, indem constant der Bedingung geändert wird, ist das im Allgemeinen am besten.

Zur Swift 2-Syntax siehe vorherige Überarbeitung dieser Antwort .

    
Rob 09.01.2015, 22:22
quelle
0

Sieht so aus, als würden Sie nur mehr und mehr Einschränkungen hinzufügen. Sie können das nicht tun, weil sie offensichtlich miteinander in Konflikt stehen. Sie sagen im Grunde: "Setzen Sie die Ansicht auf Position x = 1, x = 2, x = 3, x = 4 und x = 5".

Sie müssen die alten Einschränkungen entfernen. Sie haben zwei Möglichkeiten, das zu tun.

  1. Speichern Sie die Abhängigkeiten in einem Array und entfernen Sie diese Einschränkungen aus der Ansicht, bevor Sie neue hinzufügen.

  2. Oder Sie behalten einen Verweis auf die Einschränkungen bei, die ihre Eigenschaften ändern und anpassen.

Da sich Ihre Constraints nur im konstanten Wert unterscheiden, sollten Sie für Option 2 gehen.

Machen Sie newButtonConstraintX und newButtonConstraintY zu einer Variablen des viewControllers.

z.B.

%Vor%     
Matthias Bauch 09.01.2015 22:21
quelle
0

Aktualisieren Sie Robs Antwort auf Swift 3:

%Vor%     
Brian 24.02.2017 20:02
quelle

Tags und Links