我正在构建应用,允许用户将主UICollectionView
过度滚动一定数量,以便加载相关内容。过度滚动的触觉体验应该与许多其他iOS应用程序相同,这些应用程序会导致当前页面上的内容刷新,因此我设置了collectionView.bounce = YES
。
一旦用户超过指定金额,我想将当前UICollectionView
向下移动到视野之外,同时将新页面从设备顶部向下移动到视图中,非常类似于inter - 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
的帧,但我的问题是,当前页面向下移动并离开视图(如果用户向下滚动,则向上和向外移动), UICollectionView
也会将滚动条反弹回{0}的contentOffset
。这导致我想要避免的奇怪的动画。我希望用户能够过度滚动,以便显示描述他们可以看到的新内容的指示符,但我不希望在页面更改动画期间反转过度滚动。
在用户滚动浏览内容后,有没有办法阻止UICollectionView
/ UIScrollView
将其滚动条返回到(0,0)?
答案 0 :(得分:2)