主要思路
添加一個CAGradientLayer
,這個CAGradientLayer
的遮罩層是一個填充透明的CAShapeLayer
,漸變色的顏色、方向由CAGradientLayer
的colors
、startPoint
、endPoint
來決定,邊框的寬度由CAShapeLayer
的lineWidth
決定,另外邊框的圓角也是可以配置的,這里不再贅述了,代碼如下:
let gradientLayer = CAGradientLayer()
gradientLayer.frame = boarderView.bounds
gradientLayer.colors = [UIColor.blue.cgColor,UIColor.green.cgColor]
let maskLayer = CAShapeLayer()
maskLayer.lineWidth = 2.0
maskLayer.path = UIBezierPath(rect: self.boarderView.bounds).cgPath
maskLayer.fillColor = UIColor.clear.cgColor
maskLayer.strokeColor = UIColor.black.cgColor
gradientLayer.mask = maskLayer
self.boarderView.layer.addSublayer(gradientLayer)
效果如下: