UIView
then you are at the right place.Create a new swift file and add below
UIView Extension
in the file.
import UIKit
extension UIView {
func round(corners: UIRectCorner, cornerRadius: Double) {
let size = CGSize(width: cornerRadius, height: cornerRadius)
let bezierPath = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: corners, cornerRadii: size)
let shapeLayer = CAShapeLayer()
shapeLayer.frame = self.bounds
shapeLayer.path = bezierPath.cgPath
self.layer.mask = shapeLayer
}
}
In the above code we create a UIBezierPath
using provided corners and assign it to CAShapeLayer
.
Round only top corners
Write below code to round only top cornersself.myView.round(corners: [.topLeft, .topRight], cornerRadius: 20)
Round only bottom corners
self.myView.round(corners: [.bottomLeft, .bottomRight], cornerRadius: 20)
Round other corners
// Round top-left corner only
self.myView.round(corners: [.topLeft], cornerRadius: 20)
// Round top-left and bottom-left corners only
self.myView.round(corners: [.topLeft, .bottomLeft], cornerRadius: 20)
// Round top-left and bottom-right corners only
self.myView.round(corners: [.topLeft, .bottomRight], cornerRadius: 20)
// Round top-right and bottom-left corners only
self.myView.round(corners: [.topRight, .bottomLeft], cornerRadius: 20)