在UIView的drawRect方法中调用的CGContextDrawLinearGradient与CAGradientLayer有什么区别?他们如何比较性能?创建渐变视图的最佳做法是什么?我真的很喜欢他们如何相互联系以及为什么一个人的表现比另一个更好。
感谢。
答案 0 :(得分:1)
如果你只想要一个带渐变的盒子,那么性能不是真正的问题。您应该选择最简单的方法来满足您的特定需求。
添加CAGradientLayer意味着您不必创建视图子类,只需将图层添加到现有视图即可。设置也稍微容易一些,因为您不需要担心帧大小或任何c风格的核心图形功能。您还可以添加圆角,阴影等,而无需太多精力。
但是,如果你想要多个渐变视图,那么子类可能是个好主意,所以你可以实现新的渐变视图。
所以,不幸的是,你的问题没有明确的答案。两者都没有明确的好转。如果您关注性能,请同时使用仪器进行测试。