无法从视图中删除子视图?
问题描述:
我想从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];
,但它始终删除他们两个......我失去了..
答
这会从您的视图中删除任何UIActivityIndicatorView,无需任何标记就什么是国际海事组织一个坏的解决方案
for (UIView *aSubView in aView) {
if ([aSubView isKindOfClass:[UIActivityIndicatorView class]])
[aSubView removeFromSuperview];
}
你在调用之前和之后添加子视图的日志,并确保删除活动指示符也会导致超级视图被删除? – Wain 2013-04-24 11:28:03
oops。我很愚蠢。第一个插入清晰的颜色,它仍然存在..... – Curnelious 2013-04-24 11:29:35
你有解决方案吗? – yen 2013-04-24 11:33:57