我在我的应用中使用UIActivityIndicator。我已经为它编写了如下代码:
-(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 ...
答案 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}}?