You can set the
cornerRadius property of any
UIView to have its edges rounded, but by default that rounds all corners at the same time. If you want only some corners to be rounded, you should set the layer’s
maskedCorners property to be an array of the corners you want – it’s an option set, so you can set one or many depending on your needs.
For example, this code rounds the top-left and bottom-right corners of a view, leaving the other two square:
let redBox = UIView(frame: CGRect(x: 100, y: 100, width: 128, height: 128)) redBox.backgroundColor = .red redBox.layer.cornerRadius = 25 redBox.layer.maskedCorners = [.layerMinXMinYCorner, .layerMaxXMaxYCorner] view.addSubview(redBox)
Available from iOS 11.0
Did this solution work for you? Please pass it on!
Other people are reading…
About the Swift Knowledge Base
This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.
Build for watchOS
Take your existing Swift skills to Apple's tiniest platform – check out Hacking with watchOS!