2013-12-08 92 views
13

我以編程方式修改了一個自動佈局約束。它從一個特定的觀點來看是有效的,但其他觀點與這種觀點的其他限制並沒有改變它們的立場。它是否存在「updateAllConstrains」方法?如何觸發更新所有自動佈局約束?

+0

也許你coud張貼您的約束的屏幕:我認爲唯一可以想到的是,這些其他觀點通過不可拉伸的約束以某種方式與其他元素相關聯。 – nikans

回答

2

問題在於約束沒有正確設置,在這種情況下,setNeedsLayout或updateConstraintsIfNeeded的non可以提供幫助。

28

呼叫要更新這兩個方法的觀點:

-setNeedsLayout 
-layoutIfNeeded 

第一個對佈局系統說這個視圖需要佈置,因爲它有一些變化,所有的事情都應該重新計算。第二個強制佈局系統現在運行,佈局系統在運行期間的特定時間觸發,使用這種方法,您說:「現在就做」。

+0

我可以通過UIButton單擊更改Imageview的約束嗎?如果是這樣,請如何解釋,因爲我是新手。 – Sofeda

+0

完全同意這個答案! – Hamsternik

0

盡我所發現的是:

  1. 選擇要「啪」回你的約束

  2. 頂部菜單中的項目:編輯/更新幀(或/)快捷鍵:命令+期權+ =

希望幫助