0

在我的 iPad 应用程序中,我有一个UIView带有多个子视图,每个子视图都有不同的标签值。我想搜索具有特定标签值的子视图。目前我正在使用 for() 循环来循环查找UIView具有所需标记的特定对象。

 for (int i=0; i<[[myView subviews] count]; i++) {

    if ([[[myView subviews] objectAtIndex:1] tag]==1) {

        //assign that view

    }
}

我只是想知道,是否[myView viewWithTag:1]也使用相同的方式来查找特定的标记视图以及哪种方式更快

4

2 回答 2

1

不完全相同,viewWithTag使用深度优先搜索来查找子视图。换句话说,它递归地扫描所有子视图,直到找到UIView一个标签等于参数的。

另请参阅Apple 官方文档

于 2012-08-07T09:04:56.423 回答
0

这取决于您的代码。假设您动态创建更多数量的子视图(例如超过 10 个),您可以使用您现在编写的内容。假设您知道子视图是什么,或者您创建的子视图数量较少(例如少于 10 个),那么您可以使用[myView viewWithTag:1].

于 2012-08-07T09:02:51.600 回答