2010-12-13 79 views
3

我有問題,我的UIView子類'drawRect:函數。 我在其中使用CGContextDrawRadialGradient(),它。 當用戶拖拽我的UIView時,如果我包含漸變,它會奮力跟上。drawRect:速度和CGContextDrawRadialGradient(超慢?)

使用時間事件探查器我發現,字面上> 98%的時間花在我的子類'drawRect:方法中。

第一:使用漸變的靜態圖像會更快嗎?第二:有什麼辦法可以加快速度嗎?我能以某種方式緩存漸變嗎?它不會有太大變化,但是在你拖動UIView時,它周圍的路徑和相交路徑會發生變化。

如果有人知道如何使drawRect:方法不吸取所有cpu循環的一般指南,那將是非常棒的。

回答

0

我遇到同樣的問題。一種解決方法是繪製一個較小的漸變並將其縮放。結果並非像素完美,而是更快。

另請參閱this answer中提到的想法。