LoadableFromXibView example for MLSDev blog article.
protocol NibDefinable { | |
var nibName: String { get } | |
} | |
extension NibDefinable { | |
var nibName : String { | |
return String(self.dynamicType) | |
} | |
} | |
class LoadableFromXibView: UIView, NibDefinable { | |
@IBOutlet weak var view : UIView! | |
override init(frame: CGRect) { | |
super.init(frame: frame) | |
xibSetup() | |
} | |
required init?(coder aDecoder: NSCoder) { | |
super.init(coder: aDecoder) | |
xibSetup() | |
} | |
func xibSetup() { | |
view = loadViewFromXib() | |
view.frame = bounds | |
view.autoresizingMask = [.FlexibleWidth, .FlexibleHeight] | |
backgroundColor = .clearColor() | |
addSubview(view) | |
} | |
private func loadViewFromXib() -> UIView { | |
let bundle = NSBundle(forClass: self.dynamicType) | |
let nib = UINib(nibName: nibName, bundle: bundle) | |
let view = nib.instantiateWithOwner(self, options: nil).first as! UIView | |
return view | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment