效果图:demo.gif

实现原理:

UIView的最上层绘制一张相应的遮罩图片,图片的背景只要保证和view的父视图背景色一样,就能达到圆角的效果 换句话说,类似让设计师设计一张中间镂空的圆形图片,遮盖住原来图片上方

实现功能

亮点

API

///  设置一个带边框的圆角
///
/// - Parameters:
///   - radius: 圆角半径
///   - cornerColor: 圆角背景色
///   - corners: 圆角位置
///   - borderColor: 边框颜色
///   - borderWidth: 边框线宽
func dx_roundCorner(radii: CGSize,cornerColor: UIColor, corners: UIRectCorner, borderColor: UIColor, borderWidth: CGFloat)  {
    self.layer.dx_roundCorner(cornerRadii: radii, cornerColor: cornerColor, corners: corners, borderColor: borderColor, borderWidth: borderWidth)
}

使用示例

// 注意:非正方形,四角圆形需要用[.topLeft,.topRight, .bottomRight, .bottomLeft]
// 而不是用UIRectCorner.allCorners
label.dx_roundCorner(radius: 20/2, cornerColor: UIColor.white,corners: [.topLeft,.topRight, .bottomRight, .bottomLeft])

// 给UIView
headView.dx_roundCorner(radii: CGSize.init(width: 35, height: 35), cornerColor: UIColor.white, corners: .allCorners, borderColor: UIColor.red, borderWidth: 2)

使用注意:

github下载地址

声明:本文参考了wazrx

iOS一个简单的设置圆角不引起性能问题的分类在Objective-C版本上实现了Swift版本