如何在渐变之上添加标签?

How do I add a label on top of a gradient?

我有一个非常基本的 UICollectionView。在我的 CollectionViewCell 中,我有一个 "thumbnailImage",它只是一个图像。我想要一个从黑色渐变到清晰颜色的渐变层,但我也想要这个 CAGradient 的 UILabel ON TOP 而不是下面。标签是 "MovieTitle"。我正在以编程方式做所有事情,包括约束。我该如何执行此操作?这是我的代码

let myView: UIView = {
    let view = UIView()
    return view
}()

let gradientView: CAGradientLayer = {
    let grad = CAGradientLayer()
    grad.colors = [UIColor.white.cgColor, UIColor.red.cgColor]
    grad.locations = [0.7, 1.2]
    return grad
}()

func setupViews() {
    thumbnailImageView.addSubview(movieTitle)
    addSubview(thumbnailImageView)
    thumbnailImageView.addSubview(dividerLine)
    thumbnailImageView.addSubview(myView)
    myView.layer.addSublayer(gradientView)

    addConstrainsWithFormat(format: "H:|[v0]|", views: thumbnailImageView)
    addConstrainsWithFormat(format: "V:|[v0]|", views: thumbnailImageView)

    thumbnailImageView.addConstrainsWithFormat(format: "H:|[v0]|", views: myView)
    thumbnailImageView.addConstrainsWithFormat(format: "V:|[v0]|", views: myView)

    thumbnailImageView.addConstrainsWithFormat(format: "H:|[v0]|", views: dividerLine)
    thumbnailImageView.addConstrainsWithFormat(format: "V:[v0(0.75)]|", views: dividerLine)

    thumbnailImageView.addConstrainsWithFormat(format: "H:|-16-[v0]-16-|", views: movieTitle)
    thumbnailImageView.addConstrainsWithFormat(format: "V:[v0(25)]-8-|", views: movieTitle)
}

尝试更改视图的顺序,使标签显示在内部渐变的视图上方:

myView.layer.addSublayer(gradientView)
thumbnailImageView.addSubview(myView)
thumbnailImageView.addSubview(movieTitle)
thumbnailImageView.addSubview(dividerLine)
addSubview(thumbnailImageView)

您还可以在层次结构中现有 layers/views 的下方或上方插入图层和视图:

view.insertSubview(subview, at: 0)
view.insertSubview(subview, belowSubview: existingView)
view.insertSubview(subview, aboveSubview: existingView)

layer.insertSublayer(gradientLayer, at: 0)
layer.insertSublayer(gradientLayer, below: anotherLayer)
layer.insertSublayer(gradientLayer, above: anotherLayer)