修改 viewWithTag
Posted
技术标签:
【中文标题】修改 viewWithTag【英文标题】:Modifying viewWithTag 【发布时间】:2012-08-07 08:46:21 【问题描述】:在我的 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]
是否也使用相同的方式来查找特定的标记视图以及哪种方式更快
【问题讨论】:
【参考方案1】:不完全一样,viewWithTag
使用深度优先搜索来查找子视图。换句话说,它递归地扫描所有子视图,直到找到一个标签等于参数的UIView
。
另见Apple official Documentation
【讨论】:
【参考方案2】:这取决于您的代码。假设您动态创建更多数量的子视图(例如超过 10 个),您可以使用您现在编写的内容。假设您知道子视图是什么,或者您创建的子视图数量较少(例如少于 10 个),那么您可以使用 [myView viewWithTag:1]
。
【讨论】:
以上是关于修改 viewWithTag的主要内容,如果未能解决你的问题,请参考以下文章
为啥将“viewWithTag”与“dequeueReusableCellWithIdentifier”一起使用?
为啥 tableview rowAtindexpath 中的 viewWithTag 总是为零?