UIView如何设置部分圆角

给UIView设置四个圆角很简单

backgroundView.layer.cornerRadius = 12

这样就实现了给背景图设置4个半径12的圆角,但是要是只对上半部分或者某一个角设置圆角效果要怎么做呢?
多数博客给出的解决方案还是OC版本,这里贴一下我写的Swift版本解决方案:

let maskPath = UIBezierPath.init(roundedRect: backgroundView.bounds,byRoundingCorners: UIRectCorner(rawValue: UIRectCorner.topLeft.rawValue + UIRectCorner.topRight.rawValue),cornerRadii: CGSize(width: 12,height: 12))
let maskLayer = CAShapeLayer.init()
maskLayer.frame = backgroundView.bounds
maskLayer.path = maskPath.cgPath
backgroundView.layer.mask = maskLayer

这里有一个跟OC不一样的写法就是UIRectCorner结构体中不同值的叠加处理,OC中用的“|”与操作,Swift中的写法是使用原始值相加表示两种情况的叠加。如果有更好的解决方案也欢迎留言。 PS:虽然遇到这样的设计需求,但是最终我并没有用上这段代码,因为很讨巧的是下半部分的圆角处被其他视图遮挡了,我只需要设置layer.cornerRadius属性就好了

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...