好,所以我需要为自定义UITableViewCell
添加渐变。
在单元格初始化中,添加其子代并约束它们。
此后,我需要为其子项之一添加一个渐变UIImageView
。
我这样做是:
imgView.layer.addSublayer(mainGradient(imgView.frame.size.width, imgView.frame.size.height))
问题似乎是,虽然在UITableViewCell.init
上实际上没有单元格框架,所以一旦imgView
框架被约束设置后,它也没有框架,所以渐变也没有框架。
我尝试在layoutSubviews
方法上添加该层,但结果是仅在滚动tableView
时才添加该层,并且每次滚动时都添加一个新的层,导致每次滚动时它都变暗。
关于我该怎么做的任何想法?
答案 0 :(得分:0)
在表格视图控制器中,创建对渐变图层的引用,例如:
var gradientLayer: CAGradientLayer!
在自定义单元格类中,创建该层并将其添加为init函数中的子层。
然后,也在您的自定义单元格类中,实现layoutSubviews()
:
override func layoutSubviews() {
super.layoutSubviews()
gradientLayer.frame = imgView.bounds
}