角が丸い滑らかなUIButtonを作成するにはどうすればよいですか?標準のAppleの丸い角は、標準の丸い角よりはるかに優れています。スケッチでボタンをデザインする場合、Appleの丸い角(滑らか)から標準の丸い角に形状の角を切り替える「滑らかな角」を切り替えることができます。
ここに比較があります:
これをすばやく切り替えるにはどうすればよいですか?
showContentButton.layer.cornerRadius = 20
は角を丸めますが、この丸みのある角が「滑らかな角」なのか「標準の丸い角」なのかはよくわかりません。これを切り替える方法がわかりません。何か案は?
その効果を得るには、UIBezierPath
を使用できます
Edit: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)
)
この拡張機能を使用するだけです
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)