修改viewWithTag

时间:2012-08-07 08:46:21

标签: ios uiview subviews

在我的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]是否也使用相同的方式来查找特定的标记视图以及哪种方式更快

2 个答案:

答案 0 :(得分:1)

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

另见Apple official Documentation

答案 1 :(得分:0)

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