UITableView活动指标Apple方式

Uko*_*Uko 3 objective-c uitableview uiactivityindicatorview ios

我的问题很常见.我想显示一些"加载"内容,同时下载将在表中显示的数据.但是我到目前为止看到的所有解决方案都是向细胞添加一些微调器,或者在应用程序上放置一些半透明视图.

我想要活跃的是苹果在其应用中所做的事情(例如YouTube).比如,在白色背景上显示带有"正在加载"字样的旋转轮,然后显示数据.

我也看到了一些带有分组风格的解决方案,但是我的桌子有一个简单的风格,所以我认为它并没有帮助我很多.

编辑

我的最终代码如下所示:

- (void)loadImagesData
{
    UIView *tableView = self.view;
    self.view = [[LoadingView alloc] initWithFrame:CGRectMake(0, 0, 320, 367)];
    dispatch_queue_t downloadQueue = dispatch_queue_create("flickr downloader", NULL);
    dispatch_async(downloadQueue, ^{
        NSArray *images = [FlickrFetcher photosInPlace:self.place maxResults:MAX_PHOTOS];
        dispatch_async(dispatch_get_main_queue(), ^{
            self.view=tableView;
            self.imagesData = images;
        });
    });
    dispatch_release(downloadQueue);
}
Run Code Online (Sandbox Code Playgroud)

和imageData setter调用reloadData表视图.

All*_*ian 10

  1. 创建一个UIViewController(不是UITableViewController- 即使你要提出一个表)
  2. 创建"加载"视图并将其添加为插座
  3. 创建您的tableview并将其添加为插座
  4. 显示控制器时,将其视图属性设置为指向"正在加载"视图.完成所有任务后,使用tableview切换视图

只是不要忘记添加协议和方法以控制您的tableview

我希望这会对你有所帮助