美文网首页大前端干货
通过CAGradientLayer给Cell添加渐变色

通过CAGradientLayer给Cell添加渐变色

作者: 2028a22daae2 | 来源:发表于2019-08-06 09:53 被阅读0次

    在给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的偏移

    相关文章

      网友评论

        本文标题:通过CAGradientLayer给Cell添加渐变色

        本文链接:https://www.haomeiwen.com/subject/ndnbdctx.html