UIView的一些基本方法理解

转载 2012年03月26日 13:27:20

from: http://www.cocoachina.com/bbs/read.php?tid=38766

UIView的一些基本方法理解:loadView、viewDidLoad、viewDidUnload、viewWillAppear、viewWillDisappear

经常使用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
视图被驳回后调用,覆盖或以其他方式隐藏。默认情况下不执行任何操作

UIview的一些基本方法

//电脑没买,一些方法的调用没敲过,好想买电脑1 initWithFrame:(CGRect)Frame;2 addSubview;3 insertSubview:atIndex;4 insertSu...
  • qq_18071677
  • qq_18071677
  • 2015年11月04日 21:10
  • 48

IPhone 之 UIView的一些基本方法理解

init:方法 在init方法中实例化必要的对象(遵从LazyLoad思想) init方法中初始化ViewController本身   loadView:方法 这是当没有正在使用ni...
  • aluoshuai
  • aluoshuai
  • 2012年06月27日 12:58
  • 389

UIView 基本方法

UIView的一些基本方法理解:loadView、viewDidLoad、viewDidUnload、viewWillAppear、viewWillDisappear 经常使用UIView以及它...
  • sunyazhi
  • sunyazhi
  • 2013年12月29日 19:04
  • 292

对UIView,UIWindow,CALayer的理解

UIView负责渲染矩形区域内的内容,为矩形区域添加动画,相应区域的触摸事件,布局, 和管理一个或多个子视图,UIWindow是一个特殊的UIView,通常在一个程序中只有一个UIWindow,但可以...
  • u011041398
  • u011041398
  • 2015年03月01日 22:49
  • 1168

UIView的一些基本方法理解:loadView、viewDidLoad、viewDidUnload、viewWillAppear、viewWillDisappear

http://hi.baidu.com/bunsman/blog/item/5285b8893c77d9aa0f2444ed.html 经常使用UIView以及它的子类,一般对于init...
  • think12
  • think12
  • 2011年11月12日 16:54
  • 773

UIView的一些基本方法理解:loadView、viewDidLoad、viewDidUnload、viewWillAppear、viewWillDisappear、

转自:http://hi.baidu.com/bunsman/blog/item/5285b8893c77d9aa0f2444ed.html 经常使用UIView以及它的子类,一...
  • caroline_wang
  • caroline_wang
  • 2011年09月14日 14:16
  • 325

简述UIView、UIWindow和CALayer的理解

UIView:属于UIkit.framework框架,负责渲染矩形区域的内容,为矩形区域添加动画,响应区域的触摸事 件,布局和管理一个或多个子视图  UIWindow:属于UIKit....
  • yuanyuan1314521
  • yuanyuan1314521
  • 2015年08月28日 20:03
  • 526

根视图之UIView的一些基本方法

init方法   在init方法中实例化必要的对象(遵从LazyLoad思想) ‍init方法中初始化ViewController本身   loadView方法  ...
  • LianZeBK
  • LianZeBK
  • 2014年10月30日 17:17
  • 319

UIView绘制机制(转)

1、在Mac OS中NSWindow的父类是NSResponder,而在i OS 中UIWindow 的父类是UIVIew。程序一般只有一个窗口但是会又很多视图。 2、UIView的作用:描画和动画...
  • DevanChen
  • DevanChen
  • 2016年06月07日 11:20
  • 690

线程中的一些基本方法使用

/* * 线程中的方法 * sleep()休眠 毫秒为单位 * yield()让出处理器时间 * join()所有线程等待调用join这个线程结束完了之后再执行 * interru...
  • itlqi
  • itlqi
  • 2015年04月02日 21:38
  • 771
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UIView的一些基本方法理解
举报原因:
原因补充:

(最多只允许输入30个字)