天天看点

iOS设置指定位置圆角(swift)

思路:

  • 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圆角设置