web-dev-qa-db-fra.com

coins arrondis lisses en swift

Comment créer un bouton UIB avec des coins arrondis lisses? Les coins arrondis standard Apple sont beaucoup plus agréables que les coins arrondis standard. Si je crée un bouton dans l'esquisse, je peux basculer les "coins lisses" qui basculent les coins d'une forme de Apple coins arrondis (lisses) aux coins arrondis standard.

Voici une comparaison:

enter image description here

Comment puis-je basculer cela rapidement?

showContentButton.layer.cornerRadius = 20 arrondit les coins, cependant, je ne sais pas vraiment si ces coins arrondis sont des "coins lisses" ou des "coins arrondis standard". Et je ne sais pas comment basculer cela. Des idées?

13
WalterBeiter

Pour obtenir cet effet, vous pouvez utiliser UIBezierPath

Smooth corners

Modifier: Utilisation dans UIView

class MyView: UIView {

    let myButton UIButton = UIButton()

    override func layoutSubviews() {
        super.layoutSubviews()

        // your roundPath code here
    }

}

Édition 2:

Utilisez cette approche pour arrondir des coins spécifiques:

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

Source

17
inokey

Utilisez simplement cette extension

extension CALayer {

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

}

et l'utiliser comme ça

cell.layer.roundCorners(radius: 18)
0
enigrify