码迷,mamicode.com
首页 > 其他好文 > 详细

OC中View生命周期

时间:2015-06-06 19:39:25      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:

说到view的生命周期一般都是指视图控制器的view生命周期。

首先判断控制器是否有视图,如果没有就调用loadView方法创建。过程如下:红色虚线框可以忽略,一般不会用。

 技术分享

生命周期如下:

技术分享

1. loadView:

    视图控制器(UIViewController)及其子类,无论是手写代码还是storyboard、xib肯定会调用此方法(此方法的调用是懒加载的)。其它的视图不会调用比如UIButton,UILabel等,因为他们不是视图控制器。

  • Storyboard/XIB会调用的方法:

        initWithCoder

        awakeFromNib:此时frame还没有完成。

  • 手写代码调用的代码(必须是UIView比如自定义MDDButton : UIButton)

        initWithCoder

        - (instancetype)initWithFrame:(CGRect)frame.创建时init方法会默认调用此方法,不过frame为0.除非显示调用此方法,frame才会有值,比如:[[MDDButton alloc] initWithFrame:CGRectMake(10, 10, 100, 40)];这样显示的调用frame不为0。

2 -viewDidLoad

    加载到内存完成后会调用此函数,在视图切换中,只要控制器不从内存中移除此方法就不会被调用。一般在此方法中添加一些子控件,设置视图的初始属性等等,类似初始化。

3 -viewWillAppear

    即将加载到窗口时调用此方法。一般在此方法做一些较为耗时的。这样就可以先显示基本的视图,呈现给用户(让用户感觉不是那么卡),然后再显示比较耗时的。以免显示一个白屏给用户。

4 -viewDidAppear

    视图已经加载到窗口时调用。

以下:

viewWillDisappear-视图即将消失、被覆盖或是隐藏时调用;

viewDidDisappear-视图已经消失、被覆盖或是隐藏时调用;

viewVillUnload-当内存过低时,需要释放一些不需要使用的视图时,即将释放时调用;

viewDidUnload-当内存过低,释放一些不需要的视图时调用。

OC中View生命周期

标签:

原文地址:http://www.cnblogs.com/mddblog/p/4556988.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!