美文网首页
swift 如何为某个角设置圆角

swift 如何为某个角设置圆角

作者: UILable攻城狮 | 来源:发表于2023-08-01 14:54 被阅读0次

    某个角设置为圆角

    在 iOS 11 上,系统为 CALayer 提供了一个新属性 maskedCorners ,它可以指定设置哪些角为圆角,这个属性总共有四个值可供选择,也可以组合使用:

    • layerMinXMinYCorner:左上角
    • layerMaxXMinYCorner:右上角
    • layerMinXMaxYCorner:左下角
    • layerMaxXMaxYCorner:右下角

    假如我们需要左上角和右下角为圆角,其他两个角为直角,只需要这样设置:

    customView.layer.cornerRadius = 20
    customView.layer.maskedCorners = [.layerMinXMinYCorner, .layerMaxXMaxYCorner]
    

    效果如下

    image.png

    iOS 11 以下版本兼容

    如果你的 App 支持 iOS 11 以下的版本,就不能使用 maskedCorners 了,另一个变通的办法是使用 layer 上的 mask 属性,相当于在 UIView 上加了一层圆角遮罩。

    首先利用贝塞尔曲线 UIBezierPath 画出一个左上角和右下角带有圆角的矩形路径,然后创建一个新的 layer CAShapeLayer,并把其 path 属性设置为贝塞尔曲线的 path,最后把 customView 的 mask 设置为这个新的 layer。

    let corners: UIRectCorner = [.topLeft, .bottomRight]
    let radii = CGSize(width: 20, height: 20)
    let path = UIBezierPath(roundedRect: customView.bounds, byRoundingCorners: corners, cornerRadii: radii)
    let mask = CAShapeLayer()
    mask.path = path.cgPath
    customView.layer.mask = mask
    

    相关文章

      网友评论

          本文标题:swift 如何为某个角设置圆角

          本文链接:https://www.haomeiwen.com/subject/fnmlpdtx.html