2013-12-08 14 views
13

プログラムで1つの自動レイアウト制約を修正しました。 1つの特定のビューに有効ですが、そのビューに対する他の制約に拘束されている他のビューは、その位置を変更しません。 「updateAllConstrains」メソッドが存在しますか?
すべての自動レイアウト制約を更新するためにどのようにトリガできますか?

+0

に役立ちます:私が考えていると思うのは、これらの他のビューが伸縮できない制約によって他の要素に何らかの形で束縛されているということだけです。 – nikans

答えて

2

制約は正しく設定されていないため、この場合はsetNeedsLayoutまたはupdateConstraintsIfNeeded以外のものが役立ちます。

2

はいUIViewの上の方法がありますが、私はこれはあなたの問題である

28

はあなたが更新したいビュー上でこれらの2つのメソッドを呼び出すとは思わないしかし- (void)updateConstraintsIfNeeded

https://developer.apple.com/Library/ios/documentation/UIKit/Reference/UIView_Class/UIView/UIView.html#//apple_ref/occ/instm/UIView/updateConstraintsIfNeeded

と呼ばれます

-setNeedsLayout 
-layoutIfNeeded 

最初にレイアウトシステムにこのビューを配置する必要がありますが、それにはいくつかの変更があり、すべてを再計算する必要があるからです。 2つ目はレイアウトシステムを強制的に実行し、実行時に特定のタイミングでレイアウトシステムが起動されます。この方法では「今すぐ」と言います。

+0

UIButtonをクリックしてImageviewの制約を変更できますか?もしそうなら、私はこれについて新しいものとして説明してください。 – Sofeda

+0

完全にこの回答に同意してください! – Hamsternik

0

私が見つけたベストです:編集/更新フレーム(または/)ショートカット:コマンド

  1. が戻ってあなたの制約に

  2. トップメニューを使用すると、「ポップ」したい項目を選択します+オプション+ =

うまくいけば、それはたぶん、あなたはあなたの制約の画面を投稿coud

関連する問題