0

我正在使用 aNSFetchedResultsController来填充UITableView. 提取需要一些时间,所以我想在提取过程中向用户展示一个纺车。

我该怎么做?

4

3 回答 3

3

您应该在主线程中启动微调器,并为辅助线程推送“繁重的工作”。工作完成后,停止旋转器。您可以通过以下方式实现:

    // 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动画。

最后,我建议您将用作微调器。

于 2012-05-10T09:40:32.283 回答
0

你有几种方法可以做到这一点:

如果UIBarItem您使用 UINavigationBar 并将 customView 设置为UIActivityIndicator在函数的开头并在结尾隐藏它,则有一个。

在视图中心创建一个“模态”视图UIActivityIndicator,并将此子视图添加到您的表格视图中,并在函数的末尾将其删除。

于 2012-05-10T09:39:45.993 回答
0

正式地,您可以使用 UIActivityIndi​​catorView 来展示轮子,并以一些好的和精致的方式使用 MBHoods 从这里下载演示应用程序

于 2012-05-10T09:40:30.527 回答