Swift只有上半部分圆角View

2020-11-17  本文已影响0人  缺一门

经常会在业务中遇到只需要上部圆角的背景,常规方式有两种:
1.直接让设计师切图
2.自己画

先上代码

let v = UIView()
v.backgroundColor = .orange
// 圆角大小
let radius: CGFloat = 20; 
// 圆角位置
let corner: UIRectCorner = [.topLeft, .topRight]      
//frame可以先计算完成  避免圆角拉伸
let rect = CGRect(x: 0, y: 0, width: UIScreen.main.bounds.size.width, height: 310)
let path: UIBezierPath = UIBezierPath(roundedRect: rect, byRoundingCorners: corner, cornerRadii: CGSize(width: radius, height: radius))
let maskLayer: CAShapeLayer = CAShapeLayer()
maskLayer.frame = rect;
maskLayer.path = path.cgPath
v.layer.mask = maskLayer;
return v

上述还有小tips,swift中的option类型的枚举,并不是使用|运算,而是采用集合的形式[.topLeft, .topRight]
效果图:

image.png

that's all~

上一篇下一篇

猜你喜欢

热点阅读