概述
我正在构建一个应用程序,允许用户将主要内容滚动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];
}
}
问题
委托负责移动这些UICollectionView
s 的框架,但我的问题是,当当前页面向下移动并移出视图(或者如果用户向下滚动时向上和移出视图),UICollectionView
也会将滚动弹回contentOffset
(0,0)的 a 。这会导致我想避免的看起来很奇怪的动画。我希望用户能够过度滚动,以便显示一个指示符来描述他们可以看到的新内容,但我不希望在换页动画期间反转过度滚动。
问题
有没有办法防止UICollectionView
/UIScrollView
在用户滚动内容后将其滚动返回到 (0,0) ?