使用UIScrollView分页进行刷新

时间:2013-10-05 04:34:04

标签: ios uiscrollview refresh scrollview tableview

在我的应用程序中,我有一个滚动视图,用户可以使用pull刷新来使用基于EGORefreshTableHeaderView的自定义拉动刷新实现进行更新。它完美无需分页,但由于可以理解的原因分页,滚动视图反弹回页面并且不会保持锁定拉动刷新因为它太小而没有注册为可以滚动的页面

有没有办法让我能以一种感觉和外观直观的方式解决这个问题?

1 个答案:

答案 0 :(得分:1)

今天遇到同样的问题并找到了解决方案:

原因是contentOffset与您的分页不匹配,因为加载视图的大小与您的页面大小不同,因此scrollview函数检测到并滚动到当前页面。

对我来说,最好的办法是在触发pulltorefresh时(在使用scrollview的contentOffset函数之前)禁用分页,如果在scrollview上启用了分页,则在刷新后恢复它

以下是我在lib上使用

更改内容的示例
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;
}