veloce
Risposta breve:
myView.layer.cornerRadius = 8
myView.layer.masksToBounds = true // optional
Risposta supplementare
Se sei arrivato a questa risposta, probabilmente hai già visto abbastanza per risolvere il tuo problema. Sto aggiungendo questa risposta per dare un po 'più di spiegazione visiva al perché le cose fanno quello che fanno.
Se inizi con un normale UIView
, ha degli angoli quadrati.
let blueView = UIView()
blueView.frame = CGRect(x: 100, y: 100, width: 100, height: 50)
blueView.backgroundColor = UIColor.blueColor()
view.addSubview(blueView)
Puoi dargli angoli arrotondati modificando la cornerRadius
proprietà della vista layer
.
blueView.layer.cornerRadius = 8
Valori di raggio maggiori forniscono angoli più arrotondati
blueView.layer.cornerRadius = 25
e valori più piccoli danno angoli meno arrotondati.
blueView.layer.cornerRadius = 3
Questo potrebbe essere sufficiente per risolvere il tuo problema proprio lì. Tuttavia, a volte una vista può avere una vista secondaria o un gioco secondario che va oltre i limiti della vista. Ad esempio, se dovessi aggiungere una vista secondaria come questa
let mySubView = UIView()
mySubView.frame = CGRect(x: 20, y: 20, width: 100, height: 100)
mySubView.backgroundColor = UIColor.redColor()
blueView.addSubview(mySubView)
oppure se dovessi aggiungere un sub strato come questo
let mySubLayer = CALayer()
mySubLayer.frame = CGRect(x: 20, y: 20, width: 100, height: 100)
mySubLayer.backgroundColor = UIColor.redColor().CGColor
blueView.layer.addSublayer(mySubLayer)
Quindi finirei con
Ora, se non voglio che le cose siano sospese oltre i limiti, posso farlo
blueView.clipsToBounds = true
o questo
blueView.layer.masksToBounds = true
che dà questo risultato:
Entrambi clipsToBounds
e masksToBounds
sono equivalenti . È solo che il primo viene utilizzato con UIView
e il secondo viene utilizzato con CALayer
.
Guarda anche