Skip to content

Instantly share code, notes, and snippets.

@brianmpalma
Last active February 22, 2016 00:42
Show Gist options
  • Save brianmpalma/7184cfe9db334c39ae93 to your computer and use it in GitHub Desktop.
Save brianmpalma/7184cfe9db334c39ae93 to your computer and use it in GitHub Desktop.
Protocol + extension for UIView and friends that adds bordering capabilities in IB using IBDesignable and IBInspectable
import UIKit
protocol Borderable {
var cornerRadius: CGFloat { get set }
var borderWidth: CGFloat { get set }
var borderColor: UIColor? { get set }
}
@IBDesignable
extension UIView: Borderable {
@IBInspectable
var cornerRadius: CGFloat {
get {
return layer.cornerRadius
}
set {
layer.cornerRadius = newValue
}
}
@IBInspectable
var borderWidth: CGFloat {
get {
return layer.borderWidth
}
set {
layer.borderWidth = newValue
}
}
@IBInspectable
var borderColor: UIColor? {
get {
guard let borderColor = layer.borderColor else { return nil }
return UIColor(CGColor: borderColor)
}
set {
layer.borderColor = borderColor?.CGColor
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment