为什么UIIndicator不会离开?

时间:2011-11-25 06:51:56

标签: iphone objective-c xcode4.2 uiactivityindicatorview

我在我的应用中使用UIActivityIndi​​cator。我已经为它编写了如下代码:

-(void)startSpinner {

    spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
    spinner.hidden = NO;
    spinner.frame = CGRectMake(137, 160, 50, 50);
    [spinner setHidesWhenStopped:YES];
    [self.view addSubview:spinner];
    [self.view bringSubviewToFront:spinner];
    [spinner startAnimating];
}

我在UIButton的动作事件

上调用此方法

并删除指标我按如下方式编写代码:

-(void)stopSpinner {

    [spinner stopAnimating];
    [spinner removeFromSuperview];
    [spinner release];
}
单击按钮指示符时出现

但是当我调用 - (void)stopSpinner方法时 willAppear指标不会失望。

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    [self stopSpinner];

}

即使我调试代码,我发现控件也会转到stopSpinner();

我无法理解这是什么问题。

plz help ...

1 个答案:

答案 0 :(得分:3)

startSpinner可能存在潜在泄漏,因为您总是在不释放UIActivityIndicatorView的情况下创建-(void)startSpinner { if (spinner){ [spinner removeFromSuperview]; [spinner release]; spinner = nil; } spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; spinner.frame = CGRectMake(137, 160, 50, 50); [spinner setHidesWhenStopped:YES]; [self.view addSubview:spinner]; [spinner startAnimating]; } 。像这样改变你的方法:

stopSpinner

用于停止为另一个UIButton操作分配viewWillAppear的动画。 Cos viewWillDisappear会提前解雇,然后点按任意按钮 PS。也许你的意思是{{1}}?