extension UIView {
// MARK: - Setup Radius
enum RadiusEdge {
case all
case topLeft
case bottomLeft
case bottomRight
case topRight
}
func setupCornerRadius(radius: CGFloat, edges: [RadiusEdge] = [.all]) {
var maskedCorners = CACornerMask()
for edge in edges {
switch edge {
case .all: maskedCorners = [.layerMaxXMaxYCorner, .layerMaxXMinYCorner, .layerMinXMaxYCorner, .layerMinXMinYCorner]
case .topLeft: maskedCorners.insert(.layerMinXMinYCorner)
case .bottomLeft: maskedCorners.insert(.layerMinXMaxYCorner)
case .bottomRight: maskedCorners.insert(.layerMaxXMaxYCorner)
case .topRight: maskedCorners.insert(.layerMaxXMinYCorner)
}
}
self.layer.cornerRadius = radius
self.layer.masksToBounds = true
self.layer.maskedCorners = maskedCorners
}
}