Rápido
Respuesta corta:
myView.layer.cornerRadius = 8
myView.layer.masksToBounds = true // optional
Respuesta suplementaria
Si ha llegado a esta respuesta, probablemente ya haya visto lo suficiente para resolver su problema. Estoy agregando esta respuesta para dar un poco más de explicación visual de por qué las cosas hacen lo que hacen.
Si comienzas con un regular UIView
, tiene esquinas cuadradas.
let blueView = UIView()
blueView.frame = CGRect(x: 100, y: 100, width: 100, height: 50)
blueView.backgroundColor = UIColor.blueColor()
view.addSubview(blueView)

Puede darle esquinas redondeadas cambiando la cornerRadius
propiedad de la vista layer
.
blueView.layer.cornerRadius = 8

Los valores de radio mayores dan esquinas más redondeadas
blueView.layer.cornerRadius = 25

y valores más pequeños dan esquinas menos redondeadas.
blueView.layer.cornerRadius = 3

Esto podría ser suficiente para resolver su problema allí mismo. Sin embargo, a veces una vista puede tener una subvista o una subcapa que se sale de los límites de la vista. Por ejemplo, si tuviera que agregar una vista secundaria como esta
let mySubView = UIView()
mySubView.frame = CGRect(x: 20, y: 20, width: 100, height: 100)
mySubView.backgroundColor = UIColor.redColor()
blueView.addSubview(mySubView)
o si tuviera que añadir un sub capa como esto
let mySubLayer = CALayer()
mySubLayer.frame = CGRect(x: 20, y: 20, width: 100, height: 100)
mySubLayer.backgroundColor = UIColor.redColor().CGColor
blueView.layer.addSublayer(mySubLayer)
Entonces terminaría con

Ahora, si no quiero que las cosas cuelguen fuera de los límites, puedo hacer esto
blueView.clipsToBounds = true
o esto
blueView.layer.masksToBounds = true
lo que da este resultado:

Ambos clipsToBounds
y masksToBounds
son equivalentes . Es solo que el primero se usa con UIView
y el segundo se usa con CALayer
.
Ver también