UIKit之IB_DESIGNABLE

1.IB_DESIGNABLE / IBInspectable 关键字解释

“所见即所得”的思想,自定义的代码实时渲染到Interface Builder中。通过@IBDesignable和@IBInspectable两个指令来完成。通过@IBDesignable告诉Interface Builderg关联的类可以实时渲染到界面中,无论我们drawRect里面多么复杂,自定义有多复杂,Xib / Storyboard都可以把它编译出来,并且渲染展示出来。但是这个类必须是UIView或者NSView的子类

IB_DESIGNABLE的工作原理:当使用IB_DESIGNABLE关键字后,Xib/StoryBoard会在不运行整个程序的情况下,把这个View代码编译跑一遍,由于没有程序上下文,所有的编译就只在这个view的代码中进行

2. initWithCoder与loadNibName异同点

1、 initWithNibName要加载的Xib的类为ViewController的类
2、loadNibNamed要加载的Xib的类为NSOjbect

它们的加载方式也不同:
initWithNibName方法:是延迟加载,这个View上的控件是 nil 的,只有到需要显示时,才会不是 nil;
loadNibNamed是立即加载,调用这个方法加载的xib对象中的各个元素都已经存在。

3.注意点

用这个特性最好是iOS8 + Swift,OC或者iOS7都会出现Failed to update而且无解

你可能感兴趣的:(UIKit之IB_DESIGNABLE)