UIView(包括子类)的几个初始化时执行动作的时机

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UIView(包括子类)的几个初始化时执行动作的时机相关的知识,希望对你有一定的参考价值。

  • -(id)initWithFrame:(CGRect)frame - UIView的指定初始化方法; 总是发送给UIView去初始化, 除非是从一个nib文件中加载的;
  • -(id)initWithCoder:(NSCoder *)coder - 从nib文件中加载的时候发送此消息给UIView;
  • -(void)awakeFromNib - 在所有的nib中的对象初始化和连接后将发送此消息; 只适用于从nib加载对象; 如要重写,其中还必须调用父类的awakeFromNib;
  • -(void)willMoveToSuperview:(UIView *)newSuperview - 在一个子视图将要被添加到另一个视图的时候发送此消息;
  • -(void)willMoveToWindow:(UIWindow *)newWindow - 在一个视图(或者它的超视图)将要被添加到window的时候发送;
  • -(void)didMoveToSuperview - 把一个视图插入到视图层级之后发送此消息;
  • -(void)didMoveToWindow - 当视图获得它的window属性集的时候发送此消息.

基本上, 你能选择: 在你的视图初始化期间执行的动作 (1 & 2), 在从nib文件中加载的时候 (3), 在插入到视图层级之前 (4 & 5) 和 之后 (6 & 7).

 
 

以上是关于UIView(包括子类)的几个初始化时执行动作的时机的主要内容,如果未能解决你的问题,请参考以下文章

从 UIView 子类推送导航控制器会导致崩溃

点击时如何对子类 UIView 执行操作?

执行子视图子类的动画

java对象的初始化过程和创建对象的几种方式

UIView的几个枚举定义

UIView 子类不可见