ユーザーがUITableViewの一番下までスクロールしたときに、UIActivityIndicatorViewを「表示してアニメーション化」させようとしています…。
テーブルビューの下部に到達すると、完了するまでに数秒かかるWebリクエストが作成され、UIActivityIndicatorViewが「停止して非表示」になります。
tableView:willDisplayCell:forRowAtIndexPathを使用してUIActivityIndicatorViewの外観をトリガーしています:
リストアイテム
ただし、問題は、メソッド全体(つまり、tableView:willDisplayCell:forRowAtIndexPath :)が呼び出されるまで、UIActivityIndicatorViewがiPhone画面に表示されず、それまでにすでに非表示になっていることです。
方法に関するアイデア:
- インジケータービューを表示する
- Webリクエストを行う
- インジケータービューを非表示にしますか?
新しいスレッド?もっといい方法?
ありがとう!!
具体的には、私の関数は次のようになります
- (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];
}
}
}