UICollectionView的scrollToItem不调用targetContentOffset

时间:2017-03-16 05:47:15

标签: ios swift uicollectionview uicollectionviewlayout

我有一个实现分页的集合视图,这就是我在自定义targetContentOffset中覆盖UICollectionViewFlowLayout来处理它的原因。当集合视图通过用户交互滚动并且它可以工作时,它会被调用。但是,使用scrollToItem或滚动到可见rect时,不会调用它。以编程方式滚动到集合视图的最佳方法是什么,肯定会通过方法targetContentOffset

1 个答案:

答案 0 :(得分:0)

在我的情况下,我使用波纹管方法以编程方式维护分页和滚动。

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)
            }
     }
}

希望这会对你有所帮助。