在UIView的drawRect方法中调用的CGContextDrawLinearGradient和CAGradientLayer有什么区别?他们是如何比较性能的呢?创建渐变视图的最佳实践是什么?我真的想要一个很好的解释,说明它们是如何相互关联的,以及为什么一个比另一个的性能更好。
谢谢。
发布于 2012-05-24 23:07:09
如果你只是想要一个带有渐变效果的长方体,那么性能并不是问题。对于您的特定需求,您应该采用最简单的实现方式。
添加CAGradientLayer意味着您不必创建视图子类,只需将层添加到现有视图中即可。设置也稍微简单一些,因为您不需要担心帧大小或任何c风格的核心图形函数。您也可以添加圆角,阴影等不需要太多的努力。
然而,如果你想要多个渐变视图,一个子类可能是一个好主意,所以你可以只实例化新的。
所以,不幸的是,你的问题没有一个明确的答案。两者都不是绝对更好的。如果您关心的是性能,请同时实现两者并使用工具进行测试。
https://stackoverflow.com/questions/10661594
复制相似问题