我正在尝试实现移动Safari在使用UICollectionView在不同页面之间滚动时所具有的相同功能。其中一个页面位于中间,另一个页面的部分也可见。

我正努力用UICollectionView来实现这样的行为。有一种方法,我发现如何将3页放在一个屏幕-使页面更小,并设置适当的嵌入式。但是,一旦我将页面设置得更小,并设置分页启用,页面就不会像应该的那样滚动到中心。我还可以禁用分页,并在UICollectionViewFlowLayout的子类中使用此方法:
- (CGRect)rectForTargetPageForProposedContentOffset:(CGPoint)proposedContentOffset withScrollingVelocity:(CGPoint)velocity在这种方法中,我可以精确地设置UICollectionView将停止的位置。但是,滚动体验不如在启用分页的情况下使用UIScrollview。当我以更大的速度滑动时,有几个页面被滚动,并在建议的页面上停止。我想实现的是相同的行为与普通滚动视图的分页启用-无论我使用的速度,我将只得到1页。
有人知道如何用UICollectionView解决这个问题吗?
发布于 2013-01-25 19:21:35
因此,您希望使页面的大小小于大小滚动视图,对吗?页面大小是,总是与滚动视图的大小相同,所以必须使滚动视图变小。
还有另一个问题。如何接收超出滚动视图的的界限?
重写滚动视图的-[UIView pointInside:withEvent:],以检查是否存在比实际更大的边界。那么触碰就会起作用。
实际上,我并没有亲自尝试过,我是通过将附加视图放在需要的边界上并覆盖-[UIView hitTest:withEvent:]来实现的。在内部,我修改了点,并调用滚动视图命中测试。这种方式的触摸是由滚动视图处理,但他们的位置是错误的。您可以尝试将这两种方法结合起来以获得正确的位置。
https://stackoverflow.com/questions/14524304
复制相似问题