我有一个实现分页的collection视图,这就是为什么我重写自定义targetContentOffset中的UICollectionViewFlowLayout来处理它。当在用户交互中滚动collection视图时,它将被调用。但是,当使用scrollToItem或滚动到visible rect时,不会调用它。以编程方式滚动到collection视图的最佳方式是什么,它肯定会通过方法targetContentOffset

最佳答案

在我的例子中,我使用bellow方法以编程方式维护分页和滚动。

func scrollViewWillEndDragging(scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
     if scrollView.contentOffset.y > -topHeaderView.frame.size.height && scrollView.contentOffset.y < -20 - 50 {
            let aHeaderHeight = topHeaderView.frame.size.height
            if velocity.y <= 0  {
                targetContentOffset.memory = CGPoint(x: 0, y: -aHeaderHeight)
            } else {
                targetContentOffset.memory = CGPoint(x: 0, y: 20 + 50)
            }
     }
}

希望这对你有帮助。

10-06 13:10