自定义View的创建、添加、移除执行过程分析

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容