我的tableView有一个奇怪的问题。 我通过JSON将数据加载到我的tableView中。虽然JSON是从另一个类的Web请求的,但我在当前视图中显示了活动指示器视图,并且tableView被隐藏了。 我有一个委托方法,一旦json准备好就会调用它。重装数据后UITableView不显示
-(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数据,但是这并没有改变一件事情。
感谢您的帮助!
这两个UI更新,像'startButton.hidden = false'和'reloadData' *都必须在主线程上完成。 –
完美谢谢!我只在mainThread中尝试了reloadData。但UI变化引起了怪异的行为。谢谢! –