在我的应用程序中,我有一个滚动视图,用户可以使用基于 EGORefreshTableHeaderView 的拉刷新的自定义实现来使用拉刷新来更新。它在没有分页的情况下完美地工作,但是由于可以理解的原因,滚动视图反弹回页面并且不会保持锁定在拉动刷新上,因为它太小了它不会注册为一个可以滚动的页面.
有没有一种方法可以让我以一种感觉和看起来直观的方式解决这个问题?
在我的应用程序中,我有一个滚动视图,用户可以使用基于 EGORefreshTableHeaderView 的拉刷新的自定义实现来使用拉刷新来更新。它在没有分页的情况下完美地工作,但是由于可以理解的原因,滚动视图反弹回页面并且不会保持锁定在拉动刷新上,因为它太小了它不会注册为一个可以滚动的页面.
有没有一种方法可以让我以一种感觉和看起来直观的方式解决这个问题?
今天遇到了同样的问题,找到了解决办法:
原因是 contentOffset 与您的分页不匹配,因为加载视图的大小与您的页面大小不同,因此滚动视图功能会检测到并滚动到当前页面。
对我来说,最好的办法是在触发 pulltorefresh 时禁用分页(在使用滚动视图的 contentOffset 的函数之前),如果在滚动视图上启用了分页,则在刷新后恢复它
这是我在使用的 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;
}