![](/img/trans.png)
[英]What does cell.layoutifneeded and cell.layoutSubviews and cell.setneedsdisplay method do in general?
[英]layoutifneeded does not trigger layoutSubviews
所以,我有這樣的代碼
UIView.animate(withDuration: 2) {
self.navigationController?.navigationBar.isHidden = self.hideNavBar
view.layoutIfNeeded()
// view.setNeedsLayout()
}
但是當我使用view.layoutIfNeeded()
調用此代碼時,根本不調用主視圖的layoutSubview函數
但是,如果我改為調用view.setNeedsLayout()
,則會調用layoutSubview函數,並且所有約束都將更新。
view.setNeedsLayout
和view.layoutIfNeeded
不應該都調用layoutSubview函數嗎? 只是他們的時間有些不同?
顧名思義, layoutIfNeeded
方法可立即進行 layoutIfNeeded
,但layoutIfNeeded
是存在“無效”視圖。 setNeedsLayout
而是使視圖“無效”,但是它將在下一個更新周期中進行布局。
調用(首先setNeedsLayout
然后layoutIfNeeded
)確保視圖無效並立即重新布局。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.