ios uiview subviews-loaded-event

时间:2012-02-02 19:51:52

标签: ios uiview subview

是否有一种简单的方法可以知道所有subivews何时加载了?

现在我正在做:

if([[self subviews] count] == 10) {
    //do stuff
}

如果没有这样的事件/方法,至少有一种方法可以动态地知道孩子的数量是什么吗?

修改

我刚刚重新阅读此内容并意识到它有点 asinine 。让我澄清一下:

我正在从UIView文件加载此XIB,我想知道NIB何时正式加载(包含所有子文件)。所以我敢说正确答案是awakeFromNib

2 个答案:

答案 0 :(得分:5)

如果你是从viewController调用它,只需使用

-(void)viewDidLoad;

在视图及其所有子视图加载后调用。如果您是从笔尖内的其中一个视图执行此操作,请使用:

-(void)awakeFromNib;

在加载视图的子视图后调用。

答案 1 :(得分:2)

如果您是以编程方式添加子视图(例如[myView addSubview:anotherView]),那么当然无法知道;如果你这样写的话,程序可以随时添加更多的子视图。

如果要从笔尖加载视图,则可能正在寻找awakeFromNib方法。来自NSObject UIKit Additions Reference

  

nib-loading基础结构向从nib存档重新创建的每个对象发送awakeFromNib消息,但仅在存档中的所有对象都已加载并初始化之后。当一个对象收到awakeFromNib消息时,保证其所有出口和操作连接已经建立。