UIView-当视图加载时如何获得通知?

有没有类似于 UIViewControllerviewDidLoadUIView? ? ? 我需要尽快通知一个 UIView已经加载(子类的 UIView) ,并执行一些操作。

38786 次浏览

根据您需要执行的操作类型,有以下几种技巧:

  1. -(id)initWithFrame:(CGRect)frame-UIView 指定 始终发送到 UIView 进行初始化,除非 视图从笔尖加载;
  2. -(id)initWithCoder:(NSCoder *)coder-每当从笔尖加载视图时,总是发送来初始化 UIView;
  3. 发送后,所有的对象在笔尖初始化和连接,只适用于如果你从一个笔尖加载对象,你必须调用超级;
  4. 在视图作为子视图添加到另一个视图之前立即发送 -(void)willMoveToSuperview:(UIView *)newSuperview; 当您从其超视图中删除该视图时,newSuperview可能为空;
  5. 在视图(或其超视图)被添加到窗口之前立即发送; 当您从窗口移除视图时,newWindow可能为空;
  6. -(void)didMoveToSuperview-在视图插入到视图层次结构之后立即发送;
  7. -(void)didMoveToWindow-视图获得其窗口属性设置后立即发送。-

基本上,您可以选择在初始化期间(1 & 2)、从 nib (3)加载之后、插入视图层次结构之前(4 & 5)以及之后(6 & 7)执行操作。