Schnell
Kurze Antwort:
myView.layer.cornerRadius = 8
myView.layer.masksToBounds = true // optional
Ergänzende Antwort
Wenn Sie zu dieser Antwort gekommen sind, haben Sie wahrscheinlich bereits genug gesehen, um Ihr Problem zu lösen. Ich füge diese Antwort hinzu, um ein bisschen mehr visuelle Erklärung dafür zu geben, warum Dinge das tun, was sie tun.
Wenn Sie mit einem regulären beginnen UIView
, hat es quadratische Ecken.
let blueView = UIView()
blueView.frame = CGRect(x: 100, y: 100, width: 100, height: 50)
blueView.backgroundColor = UIColor.blueColor()
view.addSubview(blueView)
Sie können es um runde Ecken geben, indem Sie die cornerRadius
Eigenschaft der Ansicht ändern layer
.
blueView.layer.cornerRadius = 8
Größere Radiuswerte ergeben abgerundete Ecken
blueView.layer.cornerRadius = 25
und kleinere Werte ergeben weniger abgerundete Ecken.
blueView.layer.cornerRadius = 3
Dies könnte ausreichen, um Ihr Problem genau dort zu lösen. Manchmal kann eine Ansicht jedoch eine Unteransicht oder eine Unterschicht haben, die außerhalb der Grenzen der Ansicht liegt. Wenn ich zum Beispiel eine Unter hinzuzufügen Ansicht wie diese
let mySubView = UIView()
mySubView.frame = CGRect(x: 20, y: 20, width: 100, height: 100)
mySubView.backgroundColor = UIColor.redColor()
blueView.addSubview(mySubView)
oder wenn ich eine Unter hinzuzufügen Schicht wie diese
let mySubLayer = CALayer()
mySubLayer.frame = CGRect(x: 20, y: 20, width: 100, height: 100)
mySubLayer.backgroundColor = UIColor.redColor().CGColor
blueView.layer.addSublayer(mySubLayer)
Dann würde ich mit enden
Wenn ich nicht möchte, dass Dinge außerhalb der Grenzen hängen, kann ich das tun
blueView.clipsToBounds = true
oder dieses
blueView.layer.masksToBounds = true
was dieses Ergebnis gibt:
Beide clipsToBounds
und masksToBounds
sind gleichwertig . Es ist nur so, dass der erste mit UIView
und der zweite mit verwendet wird CALayer
.
Siehe auch