切圆角方法
extension UIView {
/**
* 切圆角
* - Parameters:
* - conrners
* - radius 圆角弧度
*/
func addCorner(conrners: UIRectCorner , radius: CGFloat) {
let maskPath = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: conrners, cornerRadii: CGSize(width: radius, height: radius))
let maskLayer = CAShapeLayer.init()
maskLayer.frame = self.bounds
maskLayer.path = maskPath.cgPath
self.layer.mask = maskLayer
}
}
调用示例
let view = UIView()
view.addCorner(conrners: [.bottomRight,.bottomLeft], radius: 12)
使用遇到的问题:在XIB文件内使用此方法会出现右侧角不出现问题问题解决方案如下在UIViewController内
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
self.infoLockBackView.addCorner(conrners: [.topLeft,.topRight], radius: 12)
}
在UIView内
override func draw(_ rect: CGRect) {
super.draw(rect)
self.imgView.addCorner(conrners: [.topLeft,.topRight], radius: 4)
}