Skip to content

Instantly share code, notes, and snippets.

@bishalg
Created May 5, 2016 03:27
Show Gist options
  • Star 15 You must be signed in to star a gist
  • Fork 5 You must be signed in to fork a gist
  • Save bishalg/bcc3c8f73ad47c361e4e0c5f4608ae96 to your computer and use it in GitHub Desktop.
Save bishalg/bcc3c8f73ad47c361e4e0c5f4608ae96 to your computer and use it in GitHub Desktop.
Swift UIView Extension for Inspectable CornerRadius, BorderWidth and BoarderColors etc
//
// UIView+Extension.swift
//
// Created by Bishal Ghimire on 4/30/16.
// Copyright © 2016 Bishal Ghimire. All rights reserved.
//
import UIKit
//
// Inspectable - Design and layout for View
// cornerRadius, borderWidth, borderColor
//
extension UIView {
@IBInspectable
var cornerRadius: CGFloat {
get {
return layer.cornerRadius
}
set {
layer.cornerRadius = newValue
layer.masksToBounds = newValue > 0
}
}
@IBInspectable
var borderWidth: CGFloat {
get {
return layer.borderWidth
}
set {
layer.borderWidth = newValue
}
}
@IBInspectable
var borderColor: UIColor? {
get {
let color = UIColor.init(CGColor: layer.borderColor!)
return color
}
set {
layer.borderColor = newValue?.CGColor
}
}
@IBInspectable
var shadowRadius: CGFloat {
get {
return layer.shadowRadius
}
set {
layer.shadowColor = UIColor.blackColor().CGColor
layer.shadowOffset = CGSize(width: 0, height: 2)
layer.shadowOpacity = 0.4
layer.shadowRadius = shadowRadius
}
}
}
//
// View for UILabel Accessory
//
extension UIView {
func rightValidAccessoryView() -> UIView {
let imgView = UIImageView(image: UIImage(named: "check_valid"))
imgView.frame = CGRect(x: 0, y: 0, width: 20, height: 20)
imgView.backgroundColor = UIColor.clearColor()
return imgView
}
func rightInValidAccessoryView() -> UIView {
let imgView = UIImageView(image: UIImage(named: "check_invalid"))
imgView.frame = CGRect(x: self.cornerRadius, y: self.cornerRadius, width: 20, height: 20)
imgView.backgroundColor = UIColor.clearColor()
return imgView
}
}
@matteinn
Copy link

matteinn commented Oct 8, 2017

Does this work on Xcode 9/iOS 11?

@mastermind247
Copy link

mastermind247 commented Oct 27, 2017

Updated code for Swift 3 / 4.

extension UIView {

    @IBInspectable
    var cornerRadius: CGFloat {
        get {
            return layer.cornerRadius
        }
        set {
            layer.cornerRadius = newValue
            layer.masksToBounds = newValue > 0
        }
    }

    @IBInspectable
    var borderWidth: CGFloat {
        get {
            return layer.borderWidth
        }
        set {
            layer.borderWidth = newValue
        }
    }

    @IBInspectable
    var borderColor: UIColor? {
        get {
            let color = UIColor(cgColor: layer.borderColor!)
            return color
        }
        set {
            layer.borderColor = newValue?.cgColor
        }
    }

    @IBInspectable
    var shadowRadius: CGFloat {
        get {
            return layer.shadowRadius
        }
        set {
            layer.shadowColor = UIColor.black.cgColor
            layer.shadowOffset = CGSize(width: 0, height: 2)
            layer.shadowOpacity = 0.4
            layer.shadowRadius = shadowRadius
        }
    }
}

@benMohamed
Copy link

not working !!!

@eliakorkmaz
Copy link

@IBDesignable extension UIView{
    
    @IBInspectable
    public var viewCornerRadius: CGFloat{
        set{
            self.layer.cornerRadius = newValue
        }get{
            return self.layer.cornerRadius
        }
    }

}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment