Я пытаюсь соответствующим образом отключить прокрутку влево на горизонтальном 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. Без вышеприведенного кода , collectionView будет привязывать ячейку в indexPath обратно к идеальному центру в кадре, если он прошел несколько пикселей.
Мне нужен вышеуказанный код, чтобы учесть этокомната для маневра (скажем, 50px), чтобы переместиться влево во время этой анимации.Вот пример Изображение