从其矩形中删除活动指示器?

时间:2013-04-24 09:16:10

标签: iphone ios objective-c uiactivityindicatorview

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

    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)。

我该怎么做? 非常感谢。

3 个答案:

答案 0 :(得分:1)

你做不到。

构建一个包含背景+角半径的自定义UIView,并保存活动指示器。

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

顺便说一下,您可以隐藏活动指示器,或者将其停止(如果隐藏当收到时,它将比每次创建活动指示器更有效。)

答案 1 :(得分:1)

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

av.hidesWhenStopped = YES;

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

答案 2 :(得分: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];
}