iPhone UIView未立即更新
我的应用程序在单击时有一个按钮,它被禁用,显示活动指示器并执行后台任务。此任务完成后,回调将通过启用按钮并删除活动指示器来更新界面。我遇到的问题是,任务正在完成,回调函数已执行,但活动监视器在屏幕上保留了一段时间,该按钮看起来已禁用,但可以再次单击。谁能告诉我哪里出了问题iPhone UIView未立即更新,iphone,Iphone,我的应用程序在单击时有一个按钮,它被禁用,显示活动指示器并执行后台任务。此任务完成后,回调将通过启用按钮并删除活动指示器来更新界面。我遇到的问题是,任务正在完成,回调函数已执行,但活动监视器在屏幕上保留了一段时间,该按钮看起来已禁用,但可以再次单击。谁能告诉我哪里出了问题 非常感谢 回调方法是否在单独的线程中执行? 我这样问是因为任何对视图有影响的调用都应该在主线程上执行 通过执行以下操作可以解决此问题: 创建一个方法,该方法处理与UI相关的代码,并在回调方法中被调用 必须在主线程上执行与UI相
非常感谢 回调方法是否在单独的线程中执行? 我这样问是因为任何对视图有影响的调用都应该在主线程上执行 通过执行以下操作可以解决此问题:
//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];
}
你能发布一些代码吗?我会尝试提取一些代码,这是我们在某种程度上继承的应用程序的一部分。一个关于它的作用的快速总结。button操作将NSInvocationOperation推送到NSOperationQueue a上。当执行该方法时,它会将一些音频文件缝合在一起,最后一件事是回调到UIViewController类,该类在button控件上将enabled属性设置为“YES”,并在活动指示器上调用“stopAnimating”。再次感谢。