是否有一种方法可以允许在uiscrollview中进行分页,但将分页限制在一个方向上。
例如:允许用户访问背景(左侧),但不向前。用例用于某种类型的入职。我知道我可以添加向前移动的按钮,启用或禁用它们,然后删除刷牙,但我宁愿不进行。
我不知道我是否很好地了解您想要什么,但是使用uicollectionview:
lazy var onBoardingCollectionView: UICollectionView = {
let layout = UICollectionViewFlowLayout()
layout.scrollDirection = .horizontal
layout.minimumLineSpacing = 0
layout.minimumInteritemSpacing = 0
let cv = UICollectionView(frame: self.view.frame, collectionViewLayout: layout)
cv.showsHorizontalScrollIndicator = false
cv.showsVerticalScrollIndicator = false
cv.isPagingEnabled = true
return cv
}()
您还通过uicollectionviewdelegateflowlayout中的方法添加了带有屏幕大小的自定义单元格:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return CGSize(width: SCREENW, height: SCREENH)
}
如果您不想朝特定的方向前进,则可以尝试使用此方法显示当前的单元格并删除dataSource和收集的前一个。
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
let currentPage = Int(scrollView.contentOffset.x / scrollView.frame.width)
print("current cell: ", currentPage)
}