是否有类似于UIViewController
的viewDidLoad
方法,适用于UIView
?
我需要在UIView
加载后(UIView
的子类),立即得到通知并执行一些操作。
是否有类似于UIViewController
的viewDidLoad
方法,适用于UIView
?
我需要在UIView
加载后(UIView
的子类),立即得到通知并执行一些操作。
根据需要执行的操作不同,可以使用以下几种技术:
-(id)initWithFrame:(CGRect)frame
- UIView的指定初始化方法;除非从nib文件中加载视图,否则始终会发送给UIView进行初始化;-(id)initWithCoder:(NSCoder *)coder
- 无论何时从nib文件中加载视图,都会发送此方法进行初始化;-(void)awakeFromNib
- 在nib文件中的所有对象都初始化并连接之后发送;仅当从nib文件中加载对象时才适用;必须调用super方法;-(void)willMoveToSuperview:(UIView *)newSuperview
- 在将视图添加为另一个视图的子视图之前立即发送;如果从其父视图中移除视图,则newSuperview可能为nil;-(void)willMoveToWindow:(UIWindow *)newWindow
- 在视图(或其父视图)被添加到窗口之前立即发送;如果从窗口中移除视图,则newWindow可能为nil;-(void)didMoveToSuperview
- 视图插入视图层次结构后立即发送;-(void)didMoveToWindow
- 视图获得其window属性设置后立即发送。-基本上,您可以选择在初始化期间执行操作(1和2),从nib文件中加载后执行(3),在插入到视图层次结构之前(4和5)以及此后(6和7)执行操作。
-(void)willMoveToSuperview:(UIView *)newSuperview
是解决我所有问题的方法,非常感谢! - Erion S