如何创建带有圆角的UIButton? 标准的苹果圆角比标准的圆角好得多。 如果在草图中设计一个按钮,则可以切换“平滑角”,从而将形状的角从Apple圆角(平滑)切换到标准圆角。
这里是一个比较:
如何快速切换?
showContentButton.layer.cornerRadius = 20
是圆角的,但是,我真的不知道这个圆角是“平滑的圆角”还是“标准的圆角”。而且我不知道该如何切换。有什么想法吗?
答案 0 :(得分:19)
从 iOS 13.0 开始,除了设置cornerRadius外,您还可以使用此属性:
sampleButton.layer.cornerCurve = .continuous
这也很容易制作动画,以前使用UIBezierPath会导致问题。
更多信息,请访问https://developer.apple.com/documentation/quartzcore/calayer/3152596-cornercurve
答案 1 :(得分:11)
要获得这种效果,您可以使用UIBezierPath
编辑: 在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)
)
答案 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)