我正在使用 aNSFetchedResultsController
来填充UITableView
. 提取需要一些时间,所以我想在提取过程中向用户展示一个纺车。
我该怎么做?
我正在使用 aNSFetchedResultsController
来填充UITableView
. 提取需要一些时间,所以我想在提取过程中向用户展示一个纺车。
我该怎么做?
您应该在主线程中启动微调器,并为辅助线程推送“繁重的工作”。工作完成后,停止旋转器。您可以通过以下方式实现:
// Start the spinning here.
[mySpinner startAnimating];
// Declare the queue
dispatch_queue_t workingQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
// it's not, so we will start a background process to calculate it and not block the UI
dispatch_async(workingQueue,
^{
// Some heavy work here.
dispatch_async(dispatch_get_main_queue(), ^{
// stop the spinner here
[mySpinner stopAnimating];
});
});
在主线程中执行以下操作不会使您完成您想要的:
Start Spinner => Heavy work => Stop Spinner
当繁重的工作开始时,它会阻塞你的 UI 线程,所以你实际上不会看到UIActivityMonitor
动画。
最后,我建议您将其用作微调器。
你有几种方法可以做到这一点:
如果UIBarItem
您使用 UINavigationBar 并将 customView 设置为UIActivityIndicator
在函数的开头并在结尾隐藏它,则有一个。
在视图中心创建一个“模态”视图UIActivityIndicator
,并将此子视图添加到您的表格视图中,并在函数的末尾将其删除。