迅速平滑的圆角

时间:2018-09-13 09:09:26

标签: ios swift rounded-corners

如何创建带有圆角的UIButton? 标准的苹果圆角比标准的圆角好得多。 如果在草图中设计一个按钮,则可以切换“平滑角”,从而将形状的角从Apple圆角(平滑)切换到标准圆角。

这里是一个比较:

enter image description here

如何快速切换?

showContentButton.layer.cornerRadius = 20是圆角的,但是,我真的不知道这个圆角是“平滑的圆角”还是“标准的圆角”。而且我不知道该如何切换。有什么想法吗?

3 个答案:

答案 0 :(得分:19)

iOS 13.0 开始,除了设置cornerRadius外,您还可以使用此属性:

sampleButton.layer.cornerCurve = .continuous

这也很容易制作动画,以前使用UIBezierPath会导致问题。

更多信息,请访问https://developer.apple.com/documentation/quartzcore/calayer/3152596-cornercurve

答案 1 :(得分:11)

要获得这种效果,您可以使用UIBezierPath

Smooth corners

编辑: 在UIView中使用

class MyView: UIView {

    let myButton UIButton = UIButton()

    override func layoutSubviews() {
        super.layoutSubviews()

        // your roundPath code here
    }

}

编辑2:

使用这种方法舍入特定的角点:

let roundPath = UIBezierPath(
    roundedRect: bounds,
    byRoundingCorners: [.topLeft, .topRight],
    cornerRadii: CGSize(width: 10, height: 10)
)

Source

答案 2 :(得分:0)

只需使用此扩展名

extension CALayer {

   func roundCorners(radius: CGFloat) {
       let roundPath = UIBezierPath(
           roundedRect: self.bounds,
           cornerRadius: radius)
       let maskLayer = CAShapeLayer()
       maskLayer.path = roundPath.cgPath
       self.mask = maskLayer
   }

}

并像这样使用它

cell.layer.roundCorners(radius: 18)