通过分页正确禁用CollectionView中的向后滚动(向左)

时间:2019-04-26 00:52:44

标签: swift uicollectionview uicollectionviewcell

我试图适当地禁止在具有分页功能的水平CollectionView上向左滚动。我解决了禁用向左滚动,同时仍然允许向右滚动的问题,代码如下:

var oldX: Float = 0.0

func scrollViewDidScroll(_ scrollView: UIScrollView) {
    if backScrollEnabled == false {
        if Float(scrollView.contentOffset.x) < oldX {
            scrollView.contentOffset = CGPoint(x: CGFloat(oldX), y: scrollView.contentOffset.y)
        }
        else {
            oldX = Float(scrollView.contentOffset.x)
        }
    } else {
        // Don't do anything because backScrollEnabled is true
    }
}

但是,即使在降低速度时,在我的CollectionView中也可能会有轻微的“过度滑动/拖动”。这会导致用户滑动通过该单元格的适当终点,该终点是collectionView框架的整个宽度和高度的中心。 没有上述代码,如果collectView传递了几个像素,它将把indexPath的单元格捕捉回到框架内的完美中心。

我需要上面的代码来允许该摆动空间(例如50px)在此动画过程中向左移动。这是一个 Image Example

0 个答案:

没有答案