IOS之自定义控件

Posted by Heber on January 29, 2019

代码方式

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,通过代码方式重写一些无法通过原系统控件直接改变的属性和状态。