我试图获得一个UIActivityIndicatorView到"出现和动画",当用户的卷轴到底的时候....

在达到该表底部的查看网页的请求提出,将需要几秒钟的时间来完成,然后UIActivityIndicatorView应"停止和隐藏"

我触发的外观UIActivityIndicatorView使用,willDisplayCell:forRowAtIndexPath:

列项目

但问题是,UIActivityIndicatorView不会出现在iPhone上屏幕之后直到整个方法(即,willDisplayCell:forRowAtIndexPath:)是所谓,和通过那么它也已经隐藏。

任何想法要如何:

  1. 显示的指示图
  2. 使网络的要求
  3. 隐藏的指标的看法?

新的线?更好的办法?

谢谢!

具体地说,我的功能看起来像这样

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
    if (self.results && indexPath.row == [self.results count] - 1) {
        [self.loadingSignal setHidden:NO]; // <====== my UIActivityIndicatorView is called "loadingSignal"
        [self.loadingSignal startAnimating];

    /// make web request that will take a few seconds

        [self.loadingSignal setHidden:YES];
        [self.loadingSignal stopAnimating];

        }
    }
}
有帮助吗?

解决方案

好的。从你的上述段代码,我看到几个问题:

  1. 你似乎计划在等待完成请求之前,显示一个小区。这有几个缺点:它是令人讨厌的用户和将最有可能冻结UI,同时请求进行(可能需要几秒)。
  2. 一切都发生在 willDisplayCell 法。

这里就是我怎么觉得你应该解决这个问题:

  1. 必须将显示电池触发装 异步.
  2. 显示一个小说"Loading..."你的微调在它(见特威特2灵感)
  3. 等待回电从你的请求
  4. 填充你的型号的响应
  5. 删除"Loading..."细胞
  6. 强迫一个刷新的数据 [tableView reloadData]

这应该让你实现什么你想要做的。

其他提示

你可以试试这样做的 cellForRowAtIndexPath: 方法的时候

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top