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
}
我在 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
}