1

我正在使用此代码显示活动指示器:

    UIActivityIndicatorView  *av = [[[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite] autorelease];
    av.frame=CGRectMake(0.5*winSize.width-winSize.width/4, 0.80*winSize.height , winSize.width/2, winSize.width/8);
    [av setBackgroundColor:[UIColor colorWithRed:0.23 green:0.23 blue:0.23 alpha:0.75]];
    av.layer.cornerRadius=4;
    av.tag  = 31000;
    [[[CCDirector sharedDirector]view]addSubview:av];
    [av startAnimating];

并删除它:

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

我需要的是仅删除指示器本身(滚动的圆圈)并留下我刚刚绘制的他的视图的矩形(av.frame)。

我该怎么做?非常感谢 。

4

3 回答 3

1

你不能。

构建一些自定义 UIView 来保存背景+角半径,并保存活动指示器。

之后,您可以向此自定义 UIView 添加一个隐藏/删除活动指示器的方法。

顺便说一句,您可以隐藏活动指示器,或者停止它(如果 hidesWhenStopped 为 YES,这将比每次创建活动指示器高效得多)。

于 2013-04-24T09:20:48.780 回答
1

在这种情况下,您可以做的是设置

av.hidesWhenStopped = YES;

它会在停止时隐藏指示器。我认为你不需要删除它。

于 2013-04-24T09:26:22.100 回答
1

添加使用这个......

UIView * aView = [[UIView alloc] initWithFrame:CGRectMake(0.5*winSize.width-winSize.width/4, 0.80*winSize.height , winSize.width/2, 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.75]];
av.layer.cornerRadius=4;

[aView addSubview:av];
[[[CCDirector sharedDirector]view]addSubview:aView];
[av startAnimating];

并删除使用这个

UIView * aView = [[[CCDirector sharedDirector]view] viewWithTag:31000];
if(aView)
{
    [aView removeFromSuperview];
}
于 2013-04-24T09:33:18.143 回答