Skip to content

Instantly share code, notes, and snippets.

@ShoichiKuraoka
Last active March 5, 2020 04:16
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ShoichiKuraoka/cfcef64f98519a581dde9987fd02d288 to your computer and use it in GitHub Desktop.
Save ShoichiKuraoka/cfcef64f98519a581dde9987fd02d288 to your computer and use it in GitHub Desktop.
//
// IBDesignableExtension.swift
// https://gist.github.com/ShoichiKuraoka/cfcef64f98519a581dde9987fd02d288
//
// Created by ShoichiKuraoka on 2018/12/30.
// Copyright © 2018 ShoichiKuraoka. This file is under the MIT License.
//
import UIKit
// MARK: UIView
@available(*, unavailable, message: "Only use it at Storybord or Xib. When referring it from their file to Swift file, replace reference class name to inherited class.", renamed: "UIView")
@IBDesignable final class DesignableView: UIView {
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
override init(frame: CGRect) {
super.init(frame: frame)
}
}
// MARK: UILabal
@available(*, unavailable, message: "Only use it at Storybord or Xib. When referring it from their file to Swift file, replace reference class name to inherited class.", renamed: "UILabel")
@IBDesignable final class DesignableLabel: UILabel {
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
override init(frame: CGRect) {
super.init(frame: frame)
}
}
// MARK: UIButton
@available(*, unavailable, message: "Only use it at Storybord or Xib. When referring it from their file to Swift file, replace reference class name to inherited class.", renamed: "UIButton")
@IBDesignable final class DesignableButton: UIButton {
public required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
override public init(frame: CGRect) {
super.init(frame: frame)
}
}
// MARK: UIImageView
@available(*, unavailable, message: "Only use it at Storybord or Xib. When referring it from their file to Swift file, replace reference class name to inherited class.", renamed: "UIImageView")
@IBDesignable final class DesignableImageView: UIImageView {
public required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
override public init(frame: CGRect) {
super.init(frame: frame)
}
override init(image: UIImage?) {
super.init(image: image)
}
override init(image: UIImage?, highlightedImage: UIImage?) {
super.init(image: image, highlightedImage: highlightedImage)
}
}
// MARK: UITextView
@available(*, unavailable, message: "Only use it at Storybord or Xib. When referring it from their file to Swift file, replace reference class name to inherited class.", renamed: "UITextView")
@IBDesignable final class DesignableTextView: UITextView {
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
override init(frame: CGRect, textContainer: NSTextContainer?) {
super.init(frame: frame, textContainer: textContainer)
}
}
// MARK: CALayer extension
extension CALayer {
@available(*, unavailable, message: "Only use it at Storybord or Xib.", renamed: "borderColor")
@IBInspectable var borderUIColor: UIColor? {
get { return borderColor.map { UIColor(cgColor: $0) } }
set { borderColor = newValue?.cgColor }
}
@available(*, unavailable, message: "Only use it at Storybord or Xib.", renamed: "shadowColor")
@IBInspectable var shadowUIColor: UIColor? {
get { return shadowColor.map { UIColor(cgColor: $0) } }
set { shadowColor = newValue?.cgColor }
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment