2

私のアプリでは、EGORefreshTableHeaderView に基づいて更新するためのプルのカスタム実装を使用して、ユーザーが更新するためにプルして更新できるスクロール ビューがあります。ページネーションなしで完全に機能しますが、ページネーションがオンになっていると、スクロールビューがページに跳ね返り、スクロールできるページとして登録されないほど小さいため、プルでロックされたままにならないという理由で理解できます.

直感的に感じて見えるようにこれを修正できる方法はありますか?

4

1 に答える 1

1

今日同じ問題があり、解決策が見つかりました:

その理由は、読み込みビューのサイズがページ サイズと同じではないため、contentOffset がページネーションと一致しないためです。スクロールビュー関数はそれを検出し、現在のページにスクロールします。

私にとって最善の方法は、プルトリフレッシュがトリガーされたときにページネーションを無効にし(スクロールビューのcontentOffsetを使用する関数の前)、スクロールビューでページネーションが有効になっている場合はリフレッシュ後に復元することです

これは、私が使用するライブラリで変更したものの例です

switch (newState) {
    case SVPullToRefreshStateAll:
    case SVPullToRefreshStateStopped:
        [self resetScrollViewContentInset];
        if (self.isPaginationEnabled) {
            self.scrollView.pagingEnabled = YES;
        }
        break;

    case SVPullToRefreshStateTriggered:
        if (self.scrollView.pagingEnabled) {
            self.isPaginationEnabled = YES;
            self.scrollView.pagingEnabled = NO;
        }
        break;

    case SVPullToRefreshStateLoading:
        [self setScrollViewContentInsetForLoading];

        if(previousState == SVPullToRefreshStateTriggered && pullToRefreshActionHandler)
            pullToRefreshActionHandler();

        break;
}
于 2014-08-07T15:05:05.043 に答える