2

在 UIView 的 drawRect 方法中调用的 CGContextDrawLinearGradient 和 CAGradientLayer 有什么区别?他们如何比较性能?创建渐变视图的最佳实践是什么?我真的很想很好地解释它们之间的关系以及为什么一个比另一个性能更好。

谢谢。

4

1 回答 1

1

如果您只想要一个带有渐变的盒子,那么性能并不是真正的问题。您应该使用最简单的方法来满足您的特定要求。

添加 CAGradientLayer 意味着您不必创建视图子类,只需将图层添加到现有视图即可。设置也稍微容易一些,因为您无需担心帧大小或任何 c 风格的核心图形功能。您也可以毫不费力地添加圆角、阴影等。

但是,如果您想要多个渐变视图,子类可能是一个好主意,因此您可以创建新的。

因此,不幸的是,您的问题没有明确的答案。两者都不是绝对更好。如果您关心性能,请同时实施并使用仪器进行测试。

于 2012-05-24T15:07:08.837 回答