版权声明:本文为博主原创文章,转载请附上原文出处链接和本声明。
本文链接:https://yotrolz.com/posts/1e6befc2/
1.创建自定义view的类文件

创建自定义view的类文件.png
2.创建一个xib文件来表述自定义view(也可以通过代码)
-
创建一个xib文件
创建一个xib文件.png -
设置xib文件名(
xib文件名称和类文件保持一致)
设置xib文件名.png -
编辑xib文件:(
绑定class、添加子控件)也就是给自定义的view添加几个子控件这里我们添加了四个系统的控件(label、button、switch、textFiled)
编辑xib文件.png -
声明一个
类方法,快速创建一个自定义的view
声明类方法.png -
实现类方法
实现类方法.png -
创建一个自定义view(子控件)并添加到控制器的view(父控件)上面
创建+添加自定义view.png 问题:为什么viewDidLoad函数执行完毕后创建的customView对象没有销毁呢?
答:当您通过addSubview:方法将一个视图作为子视图添加时,父视图会对其进行保持操作。-
从控制器的view(父控件)上面移除自定义的view(子控件)
移除自定义view.png 调用
removeFromSuperview方法,会自动将自定义view对象销毁.-
重写自定义view的
dealloc方法,监听其销毁
重写自定义view的dealloc.png -
官方对
removeFromSuperview方法的说明:
removeFromSuperview1.png
removeFromSuperview2.png
调用顺序详细说明:
1.创建自定义view的时候
-
创建自定义view
创建自定义view.png -
重写
didAddSubview:方法
重写didAddSubview:.png -
调用顺序
执行顺序.png 备注:
- didAddSubview:方法会按照自定义view内部的子控件循环调用
2.添加自定义view的时候
-
添加自定义view
添加自定义view.png -
重写相应的方法,监听其执行顺序
重写添加时相应的方法.png -
调用顺序
调用顺序1.png
调用顺序2.png
3.从父控件移除自定义view(子控件)的时候
-
移除自定义view
移除自定义view.png -
重写相应的方法,监听其执行顺序
执行顺序.png -
调用顺序
调用顺序.png 备注:
- (void)willRemoveSubview:(UIView *)subview;会按照自定义view内部的子控件循环调用




















