2012-07-05 29 views

回答

9

他們是不同的東西。 setNeedsDisplay是一個動詞。用它來告訴一個視圖,它所查看的東西的狀態已經改變,所以它應該重繪(通過在下一次迭代運行循環中調用drawRect:方法)。

contentMode是視圖的屬性。它不會導致視圖立即執行任何操作。它指定視圖如何處理其內容相對於其大小。 UIViewContentModeRedraw是可能分配給此屬性的值。這意味着該視圖將通過重繪(通過調用自己的setNeedsDisplay)來渲染大小更改。

如果您計劃動畫改變視圖的大小,UIViewContentModeRedraw是一個昂貴的選擇,因爲它會嘗試在動畫過程中從頭開始重複繪製(而不是操作位圖副本)。