在给Cell添加渐变色的时候,我先是将图层的生成与插入放在了cell的awakeFromNib方法中
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
self.addGradients(colors: <#T##[(startColor: UIColor, endColor: UIColor)]#>, points: <#T##[(startPoint: CGPoint, endPoint: CGPoint)]#>)
}
然而,这样处理,造成的结果是这样的:
WechatIMG62.jpeg
emmmmm,看来awakeFromNib执行时,并不能获得当前cell正确的bounds,所以,我们将方法放进layoutSubviews中
override func layoutSubviews() {
//瞎写了一串
self.addGradients(colors: [(UIColor.black, UIColor.red),(UIColor.gray, UIColor.white)], points: [(CGPoint(x: 0, y: 0.5), CGPoint(x: 0.5, y: 0.75)),(CGPoint(x: 0.75, y: 1),CGPoint(x: 1, y: 0.75))])
}
运行一下
WechatIMG63.jpeg正常多了
再有,不要使用frame来设置layer,尤其是在滚动视图中,会造成layer相对父layer的偏移
网友评论