2013-07-18 68 views
1

儘管兩個API處於堆棧的不同層次,但CALayer的shouldRasterize和UIView的drawRect都實現了相同的目標 - 渲染位圖並將其緩存以供將來重用。在這兩種情況下,如果視圖/圖層需要重繪,緩存版本將失效。我認爲唯一的區別是如何繪製位圖。 drawRect:使用CPU完成,CALayer的shouldRasterize由核心動畫選擇使用,可能是GPU。CALayer的shouldRasterize與UIView的drawRect?

人們可以評論兩個API之間的任何其他差異嗎?

+4

這裏有問題嗎? :) – Erik

回答

1

shouldRasterize將繪製圖層及其所有子圖層緩存到單個位圖上下文中。 drawRect只爲單個圖層提供位圖內容。

請注意,在圖層上設置shouldRasterize不會影響圖層的繪製方式;它會影響發生什麼這些像素被繪製。您可以獨立或一起使用這些選項;他們提供不同的功能。