您好,欢迎来到伴沃教育。
搜索
您的当前位置:首页通过CAGradientLayer给Cell添加渐变色

通过CAGradientLayer给Cell添加渐变色

来源:伴沃教育

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

Copyright © 2019- bangwoyixia.com 版权所有 湘ICP备2023022004号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务