美文网首页
Swift: 同时给View添加阴影 渐变色 圆角

Swift: 同时给View添加阴影 渐变色 圆角

作者: 琪一可 | 来源:发表于2019-12-06 16:59 被阅读0次

因为渐变色是在view.layer上面添加了CAGradientLayer, 所以应该是给这个layer添加圆角和阴影,而不是view

⚠️而阴影能出来的条件是 clipsToBounds = false,layer.masksToBounds= false.

override func layoutSubviews() {
        super.layoutSubviews()
        
        let gradient = CAGradientLayer()
        gradient.colors = [UIColor.darkBlue.cgColor, UIColor.lightBlue.cgColor]
        gradient.frame = frame
        gradient.startPoint = CGPoint(x: 0, y: 0)
        gradient.endPoint = CGPoint(x: 1, y: 0)
        gradient.shadowColor = UIColor.blue.cgColor
        gradient.shadowOffset = CGSize(width: 0, height: 0)
        gradient.shadowOpacity = 0.8
        gradient.shadowRadius = 10
        gradient.cornerRadius = frontView.bounds.height * 0.5
       layer.insertSublayer(gradient, at: 0)
    
    }

如果视图的阴影颜色有变化 记得移除之前的layer

/// 避免重复添加的时候 颜色不更新 
        layer.sublayers?.forEach({ obj in
            if obj.isKind(of: CAGradientLayer.self) {
                obj.removeFromSuperlayer()
            }
        })

⚠️同时添加圆角和阴影的时候
对tableview注意 clipsToBounds= true才行 不然超出的cell会有奇怪的bug
这时候建议tableview后面添加一个view,用来显示阴影.或者圆角等.

相关文章

网友评论

      本文标题:Swift: 同时给View添加阴影 渐变色 圆角

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