zoukankan      html  css  js  c++  java
  • UIView的一些基本方法理解

    经常使用UIView以及它的子类,一般对于init:,viewDidLoad:,dealloc:等方法应该是比较熟悉和了解的。
    对于其它几个基本方法就不那么常用了,为了更好地编程使用这些方法,在此集中收集整理一下各方法调用的时机和作用:

    init:方法
    在init方法中实例化必要的对象(遵从LazyLoad思想)
    init方法中初始化ViewController本身

    loadView:方法
    这是当没有正在使用nib视图页面,子类将会创建自己的自定义视图层。绝不能直接调用
    如果手工维护views,必须重载重写该方法。
    当view需要被展示而它却是nil时,viewController会调用该方法。
    loadView和IB构建view
    你在控制器中实现了loadView方法,那么你可能会在应用运行的某个时候被内存管理控制调用。 
    如果设备内存不足的时候, view 控制器会收到didReceiveMemoryWarning的消息。 默认的实现是检查当前控制器的view是否在使用。 
    如果它的view不在当前正在使用的view hierarchy里面,且你的控制器实现了loadView方法,那么这个view将被release, 
    loadView方法将被再次调用来创建一个新的view。


    viewDidLoad:方法
    在视图加载后被调用:
    如果是在代码中创建的视图加载器,他将会在loadView方法后被调用;
    如果是从nib视图页面输出,他将会在视图设置好后后被调用。
    重载重写该方法以进一步定制view
    在iPhone 
    OS 
    3.0及之后的版本中,还应该重载重写viewDidUnload来释放对view的任何索引

    viewDidLoad后调用数据Model

    viewDidUnload:方法
    当系统内存吃紧的时候会调用该方法(注:viewController没有被dealloc)
    内存吃紧时,在iPhone OS 
    3.0之前didReceiveMemoryWarning是释放无用内存的唯一方式,但是OS 
    3.0及以后viewDidUnload方法是更好的方式

    在该方法中将所有IBOutlet(无论是property还是实例变量)置为nil(系统release 
    view时已经将其release掉了)

    在该方法中释放其他与view有关的对象、其他在运行时创建(但非系统必须)的对象、在viewDidLoad中被创建的对象、缓存数据等 
    release对象后,将对象置为nil(IBOutlet只需要将其置为nil,系统release 
    view时已经将其release掉了)

    一般认为viewDidUnload是viewDidLoad的镜像,因为当view被重新请求时,viewDidLoad还会重新被执行
    viewDidUnload中被release的对象必须是很容易被重新创建的对象(比如在viewDidLoad或其他方法中创建的对象),不要release用户数据或其他很难被重新创建的对象

    dealloc:方法
    viewDidUnload和dealloc方法没有关联,dealloc还是继续做它该做的事情

    viewWillAppear: 方法
    Called when the view 
    is about to made visible. Default does nothing
    视图即将可见时调用。默认情况下不执行任何操作


    viewDidAppear: 
    Called when the view 
    has been fully transitioned onto the screen. Default does 
    nothing
    视图已完全过渡到屏幕上时调用


    viewWillDisappear:
    Called when the view 
    is dismissed, covered or otherwise hidden. Default does 
    nothing
    视图被驳回时调用,覆盖或以其他方式隐藏。默认情况下不执行任何操作


    viewDidDisappear:
    Called after the view 
    was dismissed, covered or otherwise hidden. Default does 
    nothing
    视图被驳回后调用,覆盖或以其他方式隐藏。默认情况下不执行任何操作

  • 相关阅读:
    html 上传图片前预览
    php获取当月天数及当月第一天及最后一天、上月第一天及最后一天实现方法
    php 计算 pdf文件页数
    php 获取半年内每个月的订单数量, 总价, 月份
    php 获取两个数组之间不同的值
    小程序支付功能
    关于nginx的Job for nginx.service failed because the control process exited with error code.错误
    linux 安装 Apollo
    MongoDB待续。。。
    ABP vNext...待续
  • 原文地址:https://www.cnblogs.com/codings/p/3567016.html
Copyright © 2011-2022 走看看