2012-02-23 127 views

回答

4

只要需要重繪視圖,就會調用它。所以這將是當一個內部標誌設置,其中setNeedsDisplay將設置。

當然,做其他事情可能會導致setNeedsDisplay被調用。例如,如果你正在使用的UIViewContentModeRedraw內容模式,然後按文檔:

UIViewContentModeRedraw

重新顯示視圖時通過調用setNeedsDisplay方法的範圍變化。

如果使用此內容模式,您會得到一個drawRect:,發生在邊界更改後。

除此之外,我真的不能想到其他任何有調用setNeedsDisplay副作用的方法,但可能會有更多。

+0

感謝您的回答,但我仍然不知道什麼情況會使視圖重繪自己。調整視圖調用drawRect本身?它的子視圖怎麼樣?將視圖1px移動到左邊怎麼樣? – jasondinh 2012-02-23 10:01:04

+0

「邊界改變時重新顯示視圖」 - 如果內容模式爲「UIViewContentModeRedraw」。這是您調整大小/移動的答案。至於子視圖 - 不,他們不會導致他們的父母需要重繪。 – mattjgalloway 2012-02-23 12:02:40

+0

這是否意味着其他'contentMode'在尺寸改變時不會觸發'drawRect'?不好意思問這麼多問題,但我不太明白。 – jasondinh 2012-02-23 17:11:26

相關問題