【发布时间】:2020-07-05 14:22:41
【问题描述】:
我正在使用此代码添加背景层:
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let gradientLayer = CAGradientLayer()
gradientLayer.frame = view.bounds
gradientLayer.colors = [UIColor.red.cgColor,
UIColor.yellow.cgColor,
UIColor.green.cgColor,
UIColor.blue.cgColor]
view.layer.addSublayer(gradientLayer)
当我运行应用程序时 - 背景出现在我拥有的标签之上。
但是,当我检查调试视图层次结构时 - 一切都正常显示。检查下面的屏幕截图:
我尝试将标签放在单独的视图中,然后将 CAGradientLayer 添加到超级视图,但它仍然绘制在顶部。
你可以在这里查看层次结构:
【问题讨论】:
-
解决此问题的一种简单方法是创建一个 UIView 并将所有标签添加到该视图。然后将此视图添加为添加渐变层的视图的子视图。使新视图的背景颜色清除颜色
-
@AthulSethu 我试过你的建议,但结果是一样的。我已经添加了我在原始帖子中所做的事情。不知道我做错了什么。
-
你有没有检查过它是否在iOS 13或其他模拟器中工作,或者打印
sublayers来检查这些层的顺序?