SWIFT: CAGradientLayer 未以编程方式在 TableViewCell 中显示 属性

SWIFT: CAGradientLayer not shown property in TableViewCell programmatically

我在 tableViewCell 中的 CAGradientLayer 看起来像这样。我没有使用 xib 或故事板,我该如何应用该层。覆盖框架?

override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)
    //awakefromnib wont work if programmatically
    selectionStyle = .none
    backgroundColor = .black
    self.setupView()
 }

override func didMoveToSuperview() {
    self.setupGradientlayer()    
}

fileprivate func setupGradientlayer() {
    gradientlayer.frame = self.bounds

    gradientlayer.colors = [UIColor.clear.cgColor, UIColor.secBlack().withAlphaComponent(0.7).cgColor]
    gradientlayer.locations = [0.4, 1]
    
    layer.insertSublayer(gradientlayer, above: self.userImg.layer)
}


override func awakeFromNib() {
    super.awakeFromNib()
    //empty since I'm not using xib or storyboard.  only code programmatically
}

使用override func draw(_ rect: CGRect)此方法更新图层框架。每次单元格框架更改时都会调用此方法。

override func draw(_ rect: CGRect) {
        super.draw(rect)
        gradientlayer.frame = self.boundss
}