【发布时间】:2013-11-13 17:26:06
【问题描述】:
我的 tableView 有一个奇怪的问题。 我通过 JSON 将数据加载到我的 tableView 中。在另一个类中从 Web 请求 JSON 时,我在当前视图中显示了一个活动指示器视图,并且 tableView 被隐藏。 我有一个委托方法,它会在 json 准备好后立即调用。
-(void)didReceivePlayers:(NSArray *)players {
[activityIndicator stopAnimating];
tableViewPlayers.hidden = false;
startButton.hidden = false;
playersData = [[NSMutableArray alloc] initWithArray:players];
[tableViewPlayers reloadData];
NSLog(@"done reloading");
}
该方法被完美调用。 代码非常简单。我隐藏我的活动指示器并显示我的 tableView。 然后我调用 reloadData。它只需要几毫秒。但是在 reloadData 之后,我的 activityIndicator 仍然显示,并且需要几秒钟才能显示我的 tableview,尽管 nslog 正在被立即调用。
我也尝试在 mainThread 中调用 reload data,但这并没有改变任何事情。
感谢您的帮助!
【问题讨论】:
-
UI 更新,如
startButton.hidden = false和reloadData必须在主线程上完成。 -
非常感谢!我只在 mainThread 中尝试了 reloadData。但是 UI 更改导致了奇怪的行为。谢谢!
标签: ios objective-c json uitableview reloaddata