Skip to content

Instantly share code, notes, and snippets.

@harrisonrw
Created July 23, 2019 03:12
Show Gist options
  • Save harrisonrw/717357c2db9923017cb4de5e9043e0e1 to your computer and use it in GitHub Desktop.
Save harrisonrw/717357c2db9923017cb4de5e9043e0e1 to your computer and use it in GitHub Desktop.
Swift extension on UIView to round the corners
// UIView+RoundedCorners.swift
//
// Created by Robert Harrison on 7/22/19.
// Copyright © 2019 Robert Harrison. All rights reserved.
//
// Usage:
// view.roundCorners([.topLeft, .topRight], cornerRadius: 8.0)
import UIKit
enum Corner {
case topLeft
case topRight
case bottomLeft
case bottomRight
}
extension UIView {
func roundCorners(_ corners: [Corner], cornerRadius: CGFloat) {
var maskedCorners = CACornerMask()
for corner in corners {
switch corner {
case .topLeft:
maskedCorners.insert(.layerMinXMinYCorner)
case .topRight:
maskedCorners.insert(.layerMaxXMinYCorner)
case .bottomLeft:
maskedCorners.insert(.layerMinXMaxYCorner)
case .bottomRight:
maskedCorners.insert(.layerMaxXMaxYCorner)
}
}
self.layer.maskedCorners = maskedCorners
self.layer.cornerRadius = cornerRadius
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment