使用 CAGradientLayer 和 drawRect:(CGRect) 绘制顺序
Posted
技术标签:
【中文标题】使用 CAGradientLayer 和 drawRect:(CGRect) 绘制顺序【英文标题】:Draw order using CAGradientLayer & drawRect:(CGRect) 【发布时间】:2014-12-03 12:06:37 【问题描述】:我的视图覆盖了drawRect
方法来渲染graphics
。
我最近使用CAGradientLayer
和[view.layer insertSubLayer: atIndex:0]
添加了渐变背景
但是CAGradientLayer
被绘制在我的图形上而不是在下面。
将渐变颜色的 alpha 设置为 0.5 表明我的图形仍在绘制中。
这是一款具有高图形刷新率的应用,我无法在每次刷新时重绘渐变,因此我指望CAGradientLayer's
后备存储来保持性能。
我应该如何处理这个问题?
谢谢!
【问题讨论】:
【参考方案1】:子层总是绘制在基础层之上,就像子视图总是绘制在基础视图之上。
您可以尝试在超级视图级别工作,并为其添加渐变子图层。它将显示在您的视图下方。
【讨论】:
以上是关于使用 CAGradientLayer 和 drawRect:(CGRect) 绘制顺序的主要内容,如果未能解决你的问题,请参考以下文章
什么是 CALayer 和 CAGradientLayer?
使用 CAShapeLayer 创建的动画圆的 CAGradientLayer 问题
在 UITableViewCell 中使用时,CAGradientLayer 在 UIView 上溢出