[英]Cant remove subview from a view?
我正在尝试从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,而无需对其进行标记,这是imo不好的解决方案
for (UIView *aSubView in aView) {
if ([aSubView isKindOfClass:[UIActivityIndicatorView class]])
[aSubView removeFromSuperview];
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.