Swift中UIView的圆顶角落

Swift中UIView的圆顶角落,第1张

概述我正在尝试使用下面的代码来绕顶角 func roundCorners(corners:UIRectCorner, radius: CGFloat) { let path = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: corners, 我正在尝试使用下面的代码来绕顶角

func roundCorners(corners:UIRectCorner,radius: CGfloat) {        let path = UIBezIErPath(roundedRect: self.bounds,byRoundingCorners: corners,cornerRadii: CGSize(wIDth: radius,height: radius))        let maskLayer = CAShapeLayer()        maskLayer.frame = self.bounds        maskLayer.path = path.cgPath        self.layer.mask = maskLayer    }

使用myVIEw.roundCorners(corner:[.topleft,.topRight],radius:radius)

但它正在围绕观点的一边:
 

这是在tableVIEw sectionheader中,如果我向下滚动然后使用相同的代码向上舍入:
 

顶部折扣视角也使用相同的功能进行四舍五入.

感谢帮助.

更新
如果我修复视图上的宽度,那么它工作正常.

解决方法 iOS 11引入了maskedCorners,可以获得更平滑,质量更好的结果.您仍然可以在函数调用中使用UIRectCorner并将其转换为CACornerMask:

Swift 4.2:

extension UIVIEw {    func roundCorners(_ corners: UIRectCorner,radius: CGfloat) {        if #available(iOS 11.0,*) {            clipsToBounds = true            layer.cornerRadius = radius            layer.maskedCorners = CACornerMask(rawValue: corners.rawValue)        } else {            let path = UIBezIErPath(roundedRect: bounds,height: radius))            let mask = CAShapeLayer()            mask.path = path.cgPath            layer.mask = mask        }    }}
总结

以上是内存溢出为你收集整理的Swift中UIView的圆顶角落全部内容,希望文章能够帮你解决Swift中UIView的圆顶角落所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1209302.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存