1

の に を追加しようとしUIActivityIndicatorViewfooterViewUITableViewます。

ユーザーが一番下までスクロールしたことを検出するために使用- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollViewしています。新しいデータをフェッチしてから、テーブルビューをリロードします。

私は2つのアプローチを試しましたが、どれも私が望むものには合いません:

  1. メソッドにアクティビティインジケーターを追加するとviewDidLoad、インジケーターが完全に表示されます。しかし、私が1つまたは2つの行しか持っていない場合:インジケーターが表示されます(ロジックですが、私が望むものではありません...)。
  2. scrollViewDidEndDecelerating新しいデータを取得する必要があることを検出したときに、メソッドにアクティビティ インジケーターを追加します (データを取得したら削除します)。問題は、スクロールが終了した後にフッターが表示されることです。つまり、ユーザーにはフッターが表示されません (再度スクロールした場合を除く)。

より良い解決策について何か考えはありますか?

4

2 に答える 2

2

私は同じ問題に直面し、最終的に解決策を見つけました。

ViewDidLoad でアクティビティ インジケーターのアニメーションを開始し、非表示にしました。

 [self.activityIndicator startAnimating];
 self.activityIndicator.hidden = YES;

そして

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView

データの取得中

self.activityIndicator.hidden = NO;

フェッチが完了すると、make

self.activityIndicator.hidden = YES;

これが役立つことを願っています

于 2013-10-09T13:30:16.010 に答える
2

2番目のアプローチは問題ありません..しかし、新しいデータを取得した後、手動で以下のデータを表示するように変更してcontentOffsetくださいtableView.

于 2013-09-03T11:43:21.643 に答える