Swift

it2025-10-22  9

切圆角方法 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) }
最新回复(0)