how to make a gradient border of UIView?

后端 未结 6 1106
遇见更好的自我
遇见更好的自我 2020-12-28 17:37

I want to make a gradient border of view like the following picture:

\"Image\"

but I don\'t know how d

6条回答
  •  独厮守ぢ
    2020-12-28 18:41

    This what i did and it worked perfectly

       extension CALayer {
        func addGradienBorder(colors:[UIColor],width:CGFloat = 1) {
            let gradientLayer = CAGradientLayer()
            gradientLayer.frame =  CGRect(origin: CGPointZero, size: self.bounds.size)
            gradientLayer.startPoint = CGPointMake(0.0, 0.5)
            gradientLayer.endPoint = CGPointMake(1.0, 0.5)
            gradientLayer.colors = colors.map({$0.CGColor})
    
            let shapeLayer = CAShapeLayer()
            shapeLayer.lineWidth = width
            shapeLayer.path = UIBezierPath(rect: self.bounds).CGPath
            shapeLayer.fillColor = nil
            shapeLayer.strokeColor = UIColor.blackColor().CGColor
            gradientLayer.mask = shapeLayer
    
            self.addSublayer(gradientLayer)
        }
    
    }
    

提交回复
热议问题