Ich habe UIView
für die ich Einschränkungen in IB festgelegt habe. Jetzt im Code möchte ich etwas Animation machen, indem ich einige neue Beschränkungen hinzufüge und alt deaktiviere. Zuerst füge ich neue Einschränkung zu sehen, dass inaktiv ist, wie folgt aus:Hinzufügen von nicht aktiven Constraints zu bestehenden UIView
// camera view new constraints
self.cameraNewLeftConstraint = [NSLayoutConstraint constraintWithItem:self.cameraView
attribute:NSLayoutAttributeLeading
relatedBy:NSLayoutRelationEqual
toItem:self.smallImageContainerView
attribute:NSLayoutAttributeLeading
multiplier:1.0
constant:0];
self.cameraNewLeftConstraint.active = NO;
[self.presentationView addConstraint:self.cameraNewLeftConstraint];
Aber das erzeugt Constraint Warnung während der Laufzeit (stnadard Nachricht - versuchen, einige Einschränkungen zu brechen), dass ich widersprüchliche Zwänge haben, obwohl ich hinzugefügte inaktive Einschränkung. Wie kann ich damit umgehen, wie soll das gemacht werden?
Ist das etwas von Anfang an oder wurde später hinzugefügt, wie iOS9 ...? – MegaManX
Die Eigenschaft 'active' wurde in iOS8 hinzugefügt. Es ist eine viel bessere Art, Dinge zu tun, weil Sie nicht herausfinden müssen, in welchen Ansichten die Einschränkungen hinzugefügt werden. iOS kann das aus "item" und "toItem" herausfinden. – vacawama
Wenn Sie in einem Array eine Menge von Constraints haben ("myArrayOfContinints" genannt), die Sie sofort aktivieren möchten, können Sie die Klassenmethode '[NSLayoutConstraint activateConstraints: myArrayOfContinints]' verwenden. – vacawama