簡體   English   中英

Autolayout約束隨大小類更新

[英]Autolayout constraints update with size classes

我知道,如何完美地創建大小類的自動布局約束。

但我沒有得到什么時候調用layOutIfNeeded()setNeedsDisplay()layOutSubViews()setUpdateConstraints()

有人可以說出更改約束后如何正確調用此函數來更新UI。

我還關心的另一個問題是,何時僅調用上述單個函數並與其他函數一起調用。

必須非常清楚的是,布局是通過在運行時的特定時間調用的例程來計算的。
您可能需要修改當前布局,例如更改特定約束的constant 如果您這樣做,您會注意到UI中沒有任何變化,這是因為該例程仍未被調用。
您可以執行的是強制調用布局例程,並且可以通過以下兩種方法執行該操作:

  • setNeedsLayout :您告訴視圖需要布局。 下次調用該例程時,知道該視圖需要刷新布局
  • layOutIfNeeded() :您不想等待下一個調用,而是告訴系統盡快強制布局計算

setNeedsDisplay()displayIfNeeded()也會發生同樣的事情,首先你要告訴你需要再次渲染一個視圖,然后用你知道的第二個來盡快做。
如果你問自己為什么,原因就是表現。 每次重新渲染一切都沒用,這種懶惰的方法將節省系統資源。
方法- setNeedsUpdateConstraints-updateConstraintsIfNeeded基本上是應用於約束的相同概念,不同之處在於,在強制布局之前,您不會看到UI中的任何更改,為什么這種方法有用? 因為有時您需要在約束更改后進行檢查,如果布局仍然有效而不更改UI的方面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM