UICollectionView 滚动到下一个项目

UICollectionView Scroll to next item

想法是用 UIScrollView 替换 PageController,UIScrollView 应该只滚动到 next/previous 项并停止。我找到了一些解决方案,但我只知道我必须使用 targetContentOffsetForProposedContentOffset,但不知道我应该 return 什么 CGPoint 以及如何在下一个项目上停止,即使用户高速滚动.

    override func targetContentOffsetForProposedContentOffset(proposedContentOffset: CGPoint, withScrollingVelocity velocity: CGPoint) -> CGPoint {
    return CGPoint(x: 0, y: 0)
   }

使用UIScrollView,您可以启用分页。 属性 称为 pagingEnabled。这意味着如果您正确设置内容大小,它是否会吸附到全宽(或全高)。

即如果您想要 2 页,宽度为 100,高度为 200。您将内容大小设置为 CGSize,宽度为 200,高度为 200。滚动视图将处理捕捉和分页。

如果你想有一个像 goToPage(2) 这样的页面的功能。然后你只需要在 UIScrollView 中调用 scrollRectToVisible 方法,CGRect 为 (pageNumber * scrollView.width (or page width), 1 height)

您似乎在使用 Swift,因此您的实现可能会有所不同。

使用下面的代码。您的问题将得到解决。

YourScrollView.pagingEnabled = YES;