0

在加载 tableView 时我将如何运行一些代码。这是我认为可能有效的方法:

while ([self.tableView reloadData]) {
    do something
}

我想在表加载时运行 UIActivityIndi​​cator,然后在加载数据后消失。

谢谢你的帮助

4

2 回答 2

2

如果您只想在表加载时运行活动指示器:

[indicator startAnimating];
[self.tableView reloadData];
[indicator stopAnimating];

那是假设您有一个称为指示器的 UIActivityIndi​​cator,并且它的 hidesWhenStopped 属性设置为 YES。

如果您想做其他类型的工作,您很可能需要在单独的线程、调度队列等中完成这项工作。

于 2012-11-27T15:01:05.597 回答
1

不完全确定,但看起来你可以这样做:

activityIndicator.hidesWhenStopped = true;
[activityIndicator startAnimating];

[tableView reloadData];

[self performSelector:@selector(updateFinished) withObject:nil afterDelay:0];

updateFinished 只是调用的地方

[activityIndicator stopAnimating].

如果我没记错的话,你正在主线程上做所有事情。每个线程都有它的运行循环,用户的方法、动画、输入处理、计时器和类似的东西在循环中执行。在您正在执行某些用户的代码时,调用 reloadData 安排表动画在方法结束后执行,而不是通过使用具有延迟 0 的 performSelector 来安排要结束的活动指示器动画。

于 2012-11-27T15:16:23.553 回答