У меня есть UIView
, для которого я установил ограничения в IB. Теперь в коде я хочу сделать некоторую анимацию, добавив некоторые новые ограничения и дезактивируя старые. Сначала я добавить новое ограничение для просмотра, то есть неактивный, например:Добавление неактивных ограничений к существующему 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];
Но это порождает предупреждение ограничения во время выполнения (stnadard сообщение - будет пытаться сломать некоторые ограничения), что у меня есть противоречивые ограничения, хотя у меня есть добавлено неактивное ограничение. Как я могу справиться с этим, как это должно быть сделано?
Это что-то, что существовало с самого начала, или было добавлено позже, как iOS9 ...? – MegaManX
Свойство 'active' было добавлено в iOS8. Это гораздо лучший способ сделать что-то, потому что вам не нужно определять, какие представления добавить ограничения. iOS может понять это из 'item' и' toItem'. – vacawama
Если у вас есть набор ограничений в массиве (называемый 'myArrayOfContraints)', который вы хотите активировать сразу, вы можете использовать метод класса '[NSLayoutConstraint activateConstraints: myArrayOfContraints]'. – vacawama