【问题标题】:ios uiview subviews-loaded-eventios uiview subviews-loaded-event
【发布时间】:2012-02-02 19:51:51
【问题描述】:

有没有一种简单的方法可以知道所有 subivews 何时已加载?

我现在正在做:

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

如果没有为此的事件/方法,是否至少有一种方法可以动态知道孩子的数量是多少?

编辑

我刚刚重新阅读了这篇文章,并意识到它有点asinine。让我澄清一下:

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

【问题讨论】:

    标签: ios uiview subview


    【解决方案1】:

    如果您从 viewController 调用它,只需使用

    -(void)viewDidLoad;
    

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

    -(void)awakeFromNib;
    

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

    【讨论】:

      【解决方案2】:

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

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

      nib 加载基础架构向从 nib 存档重新创建的每个对象发送 awakeFromNib 消息,但前提是存档中的所有对象都已加载和初始化。当一个对象收到awakeFromNib 消息时,保证它的所有出口和动作连接都已经建立。

      【讨论】:

        猜你喜欢
        • 2017-01-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多