UIView - 如何在加载视图时收到通知?

ary*_*axt 76 iphone objective-c uiview viewdidload ios

有什么类似viewDidLoadUIViewControllerUIView??? 我需要在UIView加载(Subclass of UIView)后立即得到通知,并执行一些操作.

Cos*_*que 256

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

  1. -(id)initWithFrame:(CGRect)frame - UIView的指定初始化程序; 总是发送到UIView来初始化它,除非从一个笔尖加载视图;
  2. -(id)initWithCoder:(NSCoder *)coder - 无论何时从笔尖加载视图,总是发送初始化UIView;
  3. -(void)awakeFromNib - 在笔尖中的所有对象初始化并连接后发送; 仅适用于从笔尖加载对象的情况; 你必须打电话给超级;
  4. -(void)willMoveToSuperview:(UIView *)newSuperview - 在视图作为子视图添加到另一个视图之前立即发送; newSuperview从超级视图中删除视图时可能为nil;
  5. -(void)willMoveToWindow:(UIWindow *)newWindow - 在视图(或其超级视图)添加到窗口之前立即发送; newWindow从窗口中删除视图时可能为nil;
  6. -(void)didMoveToSuperview - 在视图插入视图层次结构后立即发送;
  7. -(void)didMoveToWindow - 在视图获取其窗口属性后立即发送. -

基本上,您可以选择在初始化(1和2),从笔尖(3)加载之后,插入视图层次结构(4和5)之后以及之后(6和7)执行操作.

  • ` - (void)willMoveToSuperview:(UIView*)newSuperview`是解决我所有问题的方法,非常感谢你! (2认同)