思路:
- 1、用贝塞尔曲线绘制指定圆角路径
- 2、创建一个CAShapeLayer,设置shapeLayer.path等于绘制的路径
- 3、将shapeLayer作为控件的layer.mask
代码:
1.在UIView的扩展类 -- Extension+UIView中,添加以下方法:
func configRectCorner(corner: UIRectCorner, radii: CGSize) {
let maskPath = UIBezierPath.init(roundedRect: self.bounds, byRoundingCorners: corner, cornerRadii: radii)
let maskLayer = CAShapeLayer.init()
maskLayer.frame = self.bounds
maskLayer.path = maskPath.cgPath
self.layer.mask = maskLayer
}
2.对需要设置圆角的视图直接应用以上方法:
let commentView = CommunityAllCommentView(frame: CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: kSafeTabBarHeight + 500))
// 设置左上,右上角半径为8的圆角
commentView.configRectCorner(corner: [.topLeft,.topRight], radii: CGSize(width: 8, height: 8))
参考链接:
iOS开发 切割指定位置圆角
iOS 设置圆角、指定位置圆角及 iOS 11圆角设置