Rápido
Resposta curta:
myView.layer.cornerRadius = 8
myView.layer.masksToBounds = true // optional
Resposta complementar
Se você chegou a esta resposta, provavelmente já viu o suficiente para resolver seu problema. Estou adicionando esta resposta para dar uma explicação visual mais detalhada de por que as coisas fazem o que fazem.
Se você começar com um regular, UIView
ele tem cantos quadrados.
let blueView = UIView()
blueView.frame = CGRect(x: 100, y: 100, width: 100, height: 50)
blueView.backgroundColor = UIColor.blueColor()
view.addSubview(blueView)
Você pode arredondá-lo alterando a cornerRadius
propriedade da exibição layer
.
blueView.layer.cornerRadius = 8
Valores de raio maiores fornecem mais cantos arredondados
blueView.layer.cornerRadius = 25
e valores menores fornecem menos cantos arredondados.
blueView.layer.cornerRadius = 3
Isso pode ser suficiente para resolver seu problema ali mesmo. No entanto, às vezes uma exibição pode ter uma subvisão ou uma subcamada que fica fora dos limites da exibição. Por exemplo, se eu fosse para adicionar uma sub vista como esta
let mySubView = UIView()
mySubView.frame = CGRect(x: 20, y: 20, width: 100, height: 100)
mySubView.backgroundColor = UIColor.redColor()
blueView.addSubview(mySubView)
ou se eu adicionasse uma sub- camada como esta
let mySubLayer = CALayer()
mySubLayer.frame = CGRect(x: 20, y: 20, width: 100, height: 100)
mySubLayer.backgroundColor = UIColor.redColor().CGColor
blueView.layer.addSublayer(mySubLayer)
Então eu terminaria com
Agora, se eu não quiser coisas penduradas fora dos limites, posso fazer isso
blueView.clipsToBounds = true
ou isto
blueView.layer.masksToBounds = true
o que dá esse resultado:
Ambos clipsToBounds
e masksToBounds
são equivalentes . É apenas que o primeiro é usado com UIView
e o segundo é usado com CALayer
.
Veja também