私は012で、制約をIBで設定したUIView
を持っています。コードでは、いくつかの新しい制約を追加し、古いものを無効にして、アニメーションを行いたいと思っています。最初に私はこのように、それがアクティブで、表示するために、新しい制約を追加:既存の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
iOS8に 'active'プロパティが追加されました。制約を追加するビューを把握する必要がないので、これははるかに優れた方法です。 iOSは 'item'と' toItem'からそれを理解することができます。 – vacawama
配列に複数の制約(myArrayOfContraintsと呼ばれます)を一度に有効にするには、クラスメソッド '[NSLayoutConstraint activateConstraints:myArrayOfContraints]'を使用できます。 – vacawama