我的应用程序在单击时有一个按钮被禁用,显示活动指示器并执行后台任务。完成此任务后,回调会通过启用按钮并删除活动指示符来更新界面。我遇到的问题是任务正在完成回调函数执行但是在一段时间内活动监视器仍然在屏幕上,按钮看起来像是被禁用但可以再次单击它。谁能告诉我哪里出错了?
非常感谢!
答案 0 :(得分:2)
是否可以在单独的线程中执行callback-method? 我问,因为任何对视图有影响的调用都应该在主线程上执行。
通过执行以下操作可以解决问题:
看起来有点像这样:
//gets called asynchronously when your operation has completed
-(void)myCallbackHandler {
[self performSelectorOnMainThread:@selector(updateUI) withObject:nil
waitUntilDone:NO];
}
-(void)updateUI {
[myActivityIndicatorView stopAnimating];
[myButton setEnabled:YES];
}