Rapide
Réponse courte:
myView.layer.cornerRadius = 8
myView.layer.masksToBounds = true // optional
Réponse supplémentaire
Si vous êtes parvenu à cette réponse, vous en avez probablement déjà vu assez pour résoudre votre problème. J'ajoute cette réponse pour donner un peu plus d'explications visuelles sur les raisons pour lesquelles les choses font ce qu'elles font.
Si vous commencez avec un régulier, UIView
il a des coins carrés.
let blueView = UIView()
blueView.frame = CGRect(x: 100, y: 100, width: 100, height: 50)
blueView.backgroundColor = UIColor.blueColor()
view.addSubview(blueView)
Vous pouvez lui donner des coins arrondis en modifiant la cornerRadius
propriété de la vue layer
.
blueView.layer.cornerRadius = 8
Des valeurs de rayon plus grandes donnent des coins plus arrondis
blueView.layer.cornerRadius = 25
et des valeurs plus petites donnent des coins moins arrondis.
blueView.layer.cornerRadius = 3
Cela pourrait suffire à résoudre votre problème. Cependant, une vue peut parfois avoir une sous-vue ou une sous-couche qui dépasse les limites de la vue. Par exemple, si je devais ajouter une vue secondaire comme celle-ci
let mySubView = UIView()
mySubView.frame = CGRect(x: 20, y: 20, width: 100, height: 100)
mySubView.backgroundColor = UIColor.redColor()
blueView.addSubview(mySubView)
ou si je devais ajouter une sous- couche comme celle-ci
let mySubLayer = CALayer()
mySubLayer.frame = CGRect(x: 20, y: 20, width: 100, height: 100)
mySubLayer.backgroundColor = UIColor.redColor().CGColor
blueView.layer.addSublayer(mySubLayer)
Ensuite, je me retrouverais avec
Maintenant, si je ne veux pas que les choses dépassent des limites, je peux le faire
blueView.clipsToBounds = true
ou ca
blueView.layer.masksToBounds = true
ce qui donne ce résultat:
Les deux clipsToBounds
et masksToBounds
sont équivalents . C'est juste que le premier est utilisé avec UIView
et le second est utilisé avec CALayer
.
Voir également