我目前有一个非常奇怪的错误。

调用了一个方法,该方法应该通过停止它来隐藏UIActivityIndicatorView(启用了停止时自动隐藏)和一个叫做UIImageViewbadIndicator

作为替换,应该显示另一个名为UIImageViewgoodIndicator

[goodIndicator setHidden:NO];
[badIndicator setHidden:YES];
[refreshIndicator stopAnimating];
NSLog(@"statussetting good should be completed");

控制台会立即打印以下内容,但是大约需要三秒钟才能在屏幕上进行更改。
2013-05-31 20:24:57.835 app name[5948:1603] statussetting good should be completed

我尝试在对象和父视图上调用setNeedsDisplay方法,并且还用alpha替换了hidden。
仍然会遇到同样的问题。

最佳答案

听起来您是从后台线程调用此函数的。与UIKit的所有交互都需要在主线程中进行。尝试使用:

dispatch_async(dispatch_get_main_queue(), ^{
    [goodIndicator setHidden:NO];
    [badIndicator setHidden:YES];
    [refreshIndicator stopAnimating];
    NSLog(@"statussetting good should be completed");
});

10-07 19:54