ios - 使用 CAGradientLayer 和 drawRect 绘制顺序 :(CGRect)

标签 ios uiview quartz-graphics drawrect cagradientlayer

我的 View 重写了drawRect 方法来呈现图形

我最近使用 CAGradientLayer[view.layer insertSubLayer: atIndex:0]

添加了渐变背景

但是 CAGradientLayer 被绘制在我的图形上而不是下面。 将渐变颜色的 alpha 设置为 0.5 表明我的图形仍在绘制中。

这是一个具有高图形刷新率的应用程序,我无法在每次刷新时重新绘制渐变,所以我依靠 CAGradientLayer 的 后备存储来保持性能。

我应该如何处理这个问题?

谢谢!

最佳答案

子层总是绘制在基础层之上,就像 subview 总是绘制在基础 View 之上一样。

您可以尝试在父 View 级别工作,并向其添加渐变子层。它将显示在您的 View 下方。

关于ios - 使用 CAGradientLayer 和 drawRect 绘制顺序 :(CGRect),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27271388/

相关文章:

xcode - 在 xcode 中共享调色板

ios - 如何在 Swift 3.0 中以编程方式使用自动布局将 UIView 容器内的 2 个或更多 UIView 水平居中

ios - 如果我多次初始化同一个属性会发生什么

iphone - iOS 中的 quartz mask ——它们还会导致崩溃吗?

iOS 有边框按钮点击时的行为

ios - iPad 上的 iPhone 应用程序 : drawViewHierarchyInRect causes glitch

ios - Xcode 尝试定位或生成匹配的签名 Assets 但未能成功

objective-c - 在 UIView 中嵌入 ZBar 相机

objective-c - iOS 上的核心文本段落空间太大

iphone - 如何在drawRect中用渐变填充路径:?