1

概述

我正在构建一个应用程序,允许用户将主要内容滚动UICollectionView一定量以加载相关内容。过度滚动的触觉体验应该和很多其他iOS应用一样会导致当前页面内容刷新,所以我设置了collectionView.bounce = YES.

一旦用户滚动了指定的量,我想将当前UICollectionView页面向下移出视图,同时将新页面从设备顶部向下移入视图,非常类似于 Digg iPhone 应用程序中的文章间导航.

我正在使用这种UIScrollViewDelegate方法检测过度滚动:

-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
    CGFloat offsetY = scrollView.contentOffset.y;
    CGFloat contentHeight = scrollView.contentSize.height;

    if (offsetY < -40){
        [self.delegate overscrolledUp];
    }

    if (offsetY - (contentHeight - scrollView.frame.size.height) > 40){
        [self.delegate overscrolledDown];
    }
}

问题

委托负责移动这些UICollectionViews 的框架,但我的问题是,当当前页面向下移动并移出视图(或者如果用户向下滚动时向上和移出视图),UICollectionView也会将滚动弹回contentOffset(0,0)的 a 。这会导致我想避免的看起来很奇怪的动画。我希望用户能够过度滚动,以便显示一个指示符来描述他们可以看到的新内容,但我不希望在换页动画期间反转过度滚动。

问题

有没有办法防止UICollectionView/UIScrollView在用户滚动内容后将其滚动返回到 (0,0) ?

4

1 回答 1

2

看一眼

https://github.com/enormego/EGOTableViewPullRefresh

它包含一个拉动刷新 tableview 的代码,你可以直接使用它或作为灵感来源。

于 2014-06-24T19:20:24.937 回答