Swift_指定位置切圆角

  • 切圆角方法
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)
    }
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页