如何管理添加到 UIView 中的子视图?
Posted
技术标签:
【中文标题】如何管理添加到 UIView 中的子视图?【英文标题】:How to manage subviews added in a UIView? 【发布时间】:2013-01-09 11:06:54 【问题描述】:我在清除视图时遇到问题,对于特定情况,我一直在将用户名作为标签添加到视图中,根据情况我可能有多个用户,现在我的问题是,对于一种情况,我想清除查看而不弹出它,我不知道如何删除那些添加的标签,我有一个想法我可以为每个标签设置标签,我可以稍后使用它来清除。在这种特殊情况下,还有任何其他有效的方法。
希望我的问题很清楚,谢谢。
【问题讨论】:
谢谢大家。我还有一个疑问,如果我要清除整个视图,那么下面的答案就可以了,如果我想保留一些与用户名无关的常用标签,那我该怎么办? 【参考方案1】:使用
for (UIView* view in self.view.subviews)
if(view isKindOfClass:[UILabel class])
//do whatever you want to do
【讨论】:
【参考方案2】:您可以像这样删除所有子视图:
for (UIView *subView in [view subviews])
[subView removeFromSuperview];
或者如果你想访问标签值为n的特定视图,
UIView *subview = [view viewWithTag:n]
【讨论】:
【参考方案3】:可以通过以下方式进行
for (UIView *view in [self.view subviews])
if ([view isKindOfClass:[UILabel class]])
[view removeFromSuperview];
希望你问这个问题。
【讨论】:
【参考方案4】:[labelName removeFromSuperview];
【讨论】:
【参考方案5】:使用这个:
for(id viewSub in self.view.subviews)
[viewSub removeFromSuperview];
这将删除 View 的所有子视图
【讨论】:
【参考方案6】:试试这个:
for (UIView *v in [self.relatedView subviews])
[v removeFromSuperview];
【讨论】:
【参考方案7】:调用下面的方法并将“UIWebView”对象作为参数传递:
+(void)removeAllSubViews:(id)pObj
NSArray *Array = [pObj subviews];
for(int index = 0; index < [Array count]; index++)
[[Array objectAtIndex:index] removeFromSuperview];
如果你想要任何特定的对象,你也可以像这样检查对象:
if(view isKindOfClass:[UILabel class])
//do whatever you want to do
干杯!
【讨论】:
以上是关于如何管理添加到 UIView 中的子视图?的主要内容,如果未能解决你的问题,请参考以下文章
将 UIView 添加到已添加到 MainView 的子视图中
如何在不知道它是哪个视图的情况下将 UIView 添加为最顶层视图的子视图?