代码方式
1.如果一个view是用代码自定义控件,它在加载时会调用initWithFrame方法。
2.如果一个view是用代码自定义控件,通常把view的构造和frame写在initWithFrame中。
3.如果一个view是用代码自定义控件,且你想在view中添加一些子控件,一般写在layoutSubviews方法中.
xib方式
1.如果一个view从xib中加载,就不能使用[xxx alloc] init 和[xxx alloc] initWithFrame:创建
2.如果一个xib经常被使用,应该提供快速构造方法
3.如果一个view从xib中加载,且你想在view中用代码添加一些子控件,需要在initWithCoder和awakeFromNib这两个方法中创建
4.如果一个view从xib中加载,会调用initWithCoder和awakeFromNib而不会调用init和initWithFrame这两个方法
继承
不知道该不该单独算一类,不过还是弄上来,这种方式指新建的类继承自更具体的系统控件(如UIButton),而不是UIView,通过代码方式重写一些无法通过原系统控件直接改变的属性和状态。