如何管理UIView中添加的子视图?

时间:2013-01-09 11:06:54

标签: iphone ios cocoa-touch uiview uilabel

我在清除视图时遇到问题,对于特定情况,我一直在视图中添加用户名作为标签,我可能有多个用户根据情况,现在我的问题是,对于一个案例我想清除没有弹出它的视图,我不知道如何删除那些添加的标签,我有一个想法,我可以为每个标签设置标签,我可以在以后清楚使用它。在这种特殊情况下,还有其他任何有效的方式。

希望我的问题很明确,谢谢。

7 个答案:

答案 0 :(得分:2)

使用

for (UIView* view in self.view.subviews) {
    if(view isKindOfClass:[UILabel class]) {
        //do whatever you want to do
    }
}

答案 1 :(得分:0)

您可以删除所有子视图:

for (UIView *subView in [view subviews])
    [subView removeFromSuperview];

或者,如果您想要访问标记值为n的特定视图,

UIView *subview = [view viewWithTag:n]

答案 2 :(得分:0)

您可以通过以下方式进行

for (UIView *view in [self.view subviews])
{
    if ([view isKindOfClass:[UILabel class]])
    {
        [view removeFromSuperview];
    }
}

希望你这么想。

答案 3 :(得分:0)

[labelName removeFromSuperview];

答案 4 :(得分:0)

使用它:

for(id viewSub in self.view.subviews)
    {
        [viewSub removeFromSuperview];
    }

这将删除View

的所有子视图

答案 5 :(得分:0)

试试这个:

for (UIView *v in [self.relatedView subviews])
{
    [v removeFromSuperview];
}

答案 6 :(得分:0)

调用以下方法并将“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
}

干杯!