2017-03-29 9 views
2

UILabelファイルのstrong制約を.xibファイルに作成し、それにコンセントを作成しました。NSLayoutConstraintが単独で再アクティブ化する

私のコードではself.constraint.active = NOを設定しますが、アプリケーションがロードされた後にDebug View Hierarchyを開くと同じ制約が有効になります。

viewDidLoadupdateViewConstraintsviewDidLayoutSubviewsに設定してみました。

NSLayoutConstraintサブクラスを作成し、setActive:メソッドを上書きしてブレークポイントを設定しましたが、自分のコードだけでトリガーしました。

+0

あなたはそれを自己活性化することは何を意味しますか?どのような制約がありますか? – giorashc

+0

@giorashc、ちょっと待って、私はポップアップウィンドウからタグを追加するために 'enter'を打ちました。代わりに質問を投稿することにしました-0- –

+0

あなたのコードであなたは' NO'をアクティブに設定していますか?また、コンセントは「弱い」か「強く」ですか?規制当局は「強力」でなければならないと私は思う。 – Hodson

答えて

2

私は制約を抱いてプレイするときはできるだけ遅くすることをお勧めします。あなたのケースによっては、早くもviewDidLoadかもしれません。

あなたが何をしても、layoutIfNeededコールで強制的に更新することができます。

私が間違っていない場合は、制約を無効にして、制約/レイアウト(updateConstraintssetNeedsLayout)を更新してからlayoutIfNeededに電話してください。しかし、私はあなたの制約を変更する必要があると思うので、時間があるとき、またはlayoutIfNeededに電話をかけたときに自動的にビューを再レイアウトするように設定します。

どちらの方法でも、この2行だけを試してください。それ以外の場合は、かっこの間に入れてください。

私は嘘をつくつもりではない、時には制約は部分的にiOS、部分スキル、部分的な黒い魔法です。

関連する問題