无法从视图中删除子视图?

问题描述:

我想从UIView中删除指标子视图,但它删除了它们而不仅仅是子视图。无法从视图中删除子视图?

我的看法是:

UIView * aView = [[UIView alloc] initWithFrame:CGRectMake(0.5*winSize.width-winSize.width/3, 0.85*winSize.height , winSize.width/1.5, winSize.width/8)]; 
    aView.backgroundColor = [UIColor clearColor]; 
    aView.tag = 31000; 
    UIActivityIndicatorView *av = [[[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite] autorelease]; 
    av.frame=aView.bounds; 
    [av setBackgroundColor:[UIColor colorWithRed:0.23 green:0.23 blue:0.23 alpha:0.85]]; 
    av.layer.cornerRadius=4; 
    av.tag = 31001; 
    [aView addSubview:av]; 
    [[[CCDirector sharedDirector]view]addSubview:aView]; 
    [av startAnimating]; 

,我已经尝试了许多方法去除它,我已经在这里找到:

UIActivityIndicatorView *tmpimg = (UIActivityIndicatorView *)[[[CCDirector sharedDirector]view] viewWithTag:31001]; 
    if(tmpimg) 
     [((UIView *)tmpimg) removeFromSuperview]; 

UIView *removeView; 
    while((removeView = [[[CCDirector sharedDirector]view] viewWithTag:31001]) != nil) 
    { 
     [removeView removeFromSuperview]; 
    } 

UIView * aView = [[[CCDirector sharedDirector]view] viewWithTag:31000]; 
    if(aView) 
     for(UIView *subview in [aView subviews]) 
      [subview removeFromSuperview]; 

,但它始终删除他们两个......我失去了..

+0

你在调用之前和之后添加子视图的日志,并确保删除活动指示符也会导致超级视图被删除? – Wain 2013-04-24 11:28:03

+0

oops。我很愚蠢。第一个插入清晰的颜色,它仍然存在..... – Curnelious 2013-04-24 11:29:35

+0

你有解决方案吗? – yen 2013-04-24 11:33:57

这会从您的视图中删除任何UIActivityIndi​​catorView,无需任何标记就什么是国际海事组织一个坏的解决方案

for (UIView *aSubView in aView) { 
    if ([aSubView isKindOfClass:[UIActivityIndicatorView class]]) 
     [aSubView removeFromSuperview]; 
}