iOS view如何重新整理

weixin_33978044發表於2017-03-01

轉自 csdn
iOS檢視強制重新整理

在iOS程式裡,我們如果有一個view需要改變了他的資料,需要強制重新整理,比如說,我們在我們的TableViewCell獲取到資料的時候,我們需要強制把這個cell重新整理一下,來顯示我們新的資料,我們就可以使用以下方法。

UIView:

setNeedsLayout()  
layoutIfNeeded()

那麼這兩個有什麼區別呢,使用setNeesLayout(),我們在我們一個update cycle中間,只是標記這個view需要更新,而不會強制系統強制的去重新繪製我們的這個view,他會呼叫我們的layoutSubview,而這個layoutSubview也是我們想要重新設定我們子檢視的佈局,如果是使用layoutIfNeeded(),我們會強制系統強制重新整理我們這個view

我們發現,和上面的setNeedsLayout()方法相似的有一個函式叫做setNeedsDisplay()。那麼這兩個方法又有什麼區別呢?setNeedsDisplay(),主要是為了繪圖而存在的,每次呼叫它,我們會標記為我們的這個view需要重新繪製,在下次我們的繪製週期中,會呼叫我們的drawRect()方法來繪製我們的檢視,你還可以通過setNeedsDisplayInRect(rect: CGRect)這個函式來指定重新繪製的rect

相關文章