drawRect:速度和CGContextDrawRadialGradient(超慢?)
我有我的UIView
子类的drawRect:
函数的问题。 我在其中使用CGContextDrawRadialGradient()
,它。 当用户拖动我的UIView时,如果包含渐变的话,它会很难跟上。
使用时间事件探查器我发现,我的时间drawRect
98%是花在我的子类drawRect
:方法中的。
第一:会使用一个渐变的静态图像更快? 第二:有什么办法可以加快速度? 我能以某种方式caching渐变吗? 它不会改变很多,但是绕着它的path和相交它会在你拖动UIView
时候改变。
如果有人知道如何使drawRect:
的一般指南drawRect:
方法不吸所有的CPU周期,这将是可怕的。
我有同样的问题。 一个解决办法是绘制一个较小的渐变,并将其缩放。 结果不像素完美,但更快。
另请参阅此答案中提到的想法。