drawRect:速度和CGContextDrawRadialGradient(超慢?)

我有我的UIView子类的drawRect:函数的问题。 我在其中使用CGContextDrawRadialGradient() ,它。 当用户拖动我的UIView时,如果包含渐变的话,它会很难跟上。

使用时间事件探查器我发现,我的时间drawRect 98%是花在我的子类drawRect :方法中的。

第一:会使用一个渐变的静态图像更快? 第二:有什么办法可以加快速度? 我能以某种方式caching渐变吗? 它不会改变很多,但是绕着它的path和相交它会在你拖动UIView时候改变。

如果有人知道如何使drawRect:的一般指南drawRect:方法不吸所有的CPU周期,这将是可怕的。

我有同样的问题。 一个解决办法是绘制一个较小的渐变,并将其缩放。 结果不像素完美,但更快。

另请参阅此答案中提到的想法。