iOS Swift设置圆角渐变色边框

2022-03-21  本文已影响0人  rome753
截屏2022-03-21 下午5.48.28.png

        let myView = UIView()
        myView.bounds = CGRect(x: 0, y: 0, width: 300, height: 100)
        myView.addGradientLayerWithCorner(cornerRadius: 20, lineWidth: 10, colors: [UIColor.blue.cgColor, UIColor.green.cgColor])

extension UIView {
    
    func addGradientLayerWithCorner(cornerRadius:CGFloat, lineWidth:CGFloat, colors: [CGColor]) {
        let gradientLayer = CAGradientLayer()
        gradientLayer.frame = self.bounds
        gradientLayer.colors = [UIColor.blue.cgColor,UIColor.green.cgColor]
        gradientLayer.cornerRadius = cornerRadius
        
        let maskLayer = CAShapeLayer()
        maskLayer.lineWidth = lineWidth
        maskLayer.path = UIBezierPath(roundedRect: CGRect(x: lineWidth / 2, y: lineWidth / 2, width: bounds.width - lineWidth, height: bounds.height - lineWidth), cornerRadius: cornerRadius).cgPath
        maskLayer.fillColor = UIColor.clear.cgColor
        maskLayer.strokeColor = UIColor.black.cgColor
        
        gradientLayer.mask = maskLayer
        self.layer.addSublayer(gradientLayer)
    }
}

这么个东西,网上一搜实现的也是各种问题。只能自己封装一下。

上一篇下一篇

猜你喜欢

热点阅读