好的,所以我需要为自定义UITableViewCell
添加渐变。
在单元初始化上,我添加了它的子代并约束了它们。
之后,我需要为其子级之一添加一个渐变,即UIImageView
。
我这样做是:
imgView.layer.addSublayer(mainGradient(imgView.frame.size.width, imgView.frame.size.height))
看起来问题在于,在
UITableViewCell.init
上实际上没有像元框架,因此一旦imgView
框架通过约束设置,它也就没有框架,因此渐变也就没有一个框架。我试过在
layoutSubviews
方法上添加该层,但结果是仅在滚动tableView
时才添加该层,并且每次滚动时,都会添加一个新层,这将导致每个滚动条都变暗。关于我该怎么做的任何想法?
最佳答案
在表格视图控制器中,创建对渐变图层的引用,例如:
var gradientLayer: CAGradientLayer!
在您的自定义单元类中,创建该层并将其添加为init函数中的子层。
然后,也在您的自定义单元格类中,实现
layoutSubviews()
:override func layoutSubviews() {
super.layoutSubviews()
gradientLayer.frame = imgView.bounds
}
关于ios - UITableViewCell的CAGradient层问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55542797/