版权声明:本文为博主原创文章,转载请附上原文出处链接和本声明。
本文链接: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内部的子控件循环调用