CAGradient与UIImage渐变性能比较
CAGradient
, CAGradient
速度很慢,我们应该使用UIImage
渐变代替它。 让我们来看看。
TL&DR:具有
shouldRasterize = NO
CAGradient
与UIImage
具有相同的性能,并且比具有shouldRasterize = YES
更快。
在比较它们速度的第一个实验中,我创建了带有UITableView
和每个UITableViewCell
内部的渐变的示例项目。 每个单元格都在prepareForDisplay
重绘其渐变,因此我们可以测量渲染时间。
共有三种类型的渐变:
- CAGradientLayer(红色)
- 带有
shouldRasterize == YES
(绿色) - UIImage渐变(黑色)