一般来说自定义控件继承自UIView,首先在 initWithFrame:
方法中添加子控件
那么为什么是 initWithFrame:
方法而不是 init
方法?
- 因为创建的时候也有可能使用
init
方法创建,但是最后都会调用initWithFrame:
方法。
可以在 initWithFrame:
方法中设置尺寸吗?
- 不可以。因为如果创建时候使用的是init,那么这时是没有UIView的尺寸的。要想设置子控件的的尺寸,父控件必先确定。
在哪里设置子控件的尺寸呢?
- 在答案是
layoutSubviews
方法。view第一次将要显示的时候会调用;以后view的尺寸改变时,也会调用。
参考资料
自定义控件的方式及注意