Я создал collectionView с 4 ячейками, рамки ячеек равны всей рамке окна, поэтому я могу прокручивать их, как если бы они были PageViewController.
lazy var collectionView : PagesCollectionView = {
let layout = UICollectionViewFlowLayout()
layout.scrollDirection = .horizontal
layout.minimumLineSpacing = 0
let collectionView = PagesCollectionView(frame: .zero, collectionViewLayout: layout)
collectionView.delegate = self
collectionView.dataSource = self
collectionView.isPagingEnabled = true
collectionView.alwaysBounceHorizontal = false
return collectionView
}()
Цель, которую я хочу достичь, заключается в том, что когда я нахожусь в первой ячейке и прокручиваю слева (contentOffset отрицательный), прокрутка collectionView останавливается, и когда я нахожусь в последней ячейке, collectionView перестает прокручиваться в правильном направлении, я хочу видеть клетка еще.
Я пробовал разные процедуры: этот заблокировал scrollView только после того, как прокрутил его в первую очередь, никогда не включив прокрутку в другом направлении:
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if(scrollView.contentOffset.x == 0){
scrollView.isScrollEnabled = false
}
}
Как было предложено в других темах StackOverflow:
func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
if(scrollView.contentOffset.x == 0){
collectionView.isScrollEnabled = false
}
collectionView.isScrollEnabled = true
}
Но это просто блокирует прокрутку в обоих направлениях. Я на самом деле не знаю, как это решить.