在scrollview中进行单向分页

时间:2017-12-14 01:35:39

标签: ios swift uiscrollview uikit

是否有办法允许在UIScrollView中进行分页,但将分页限制为一个方向。

例如:允许用户分页背景(向左)但不转发。用例适用于某种类型的入职。我知道我可以添加向前移动的按钮,启用或禁用它们,然后删除滑动,但我不愿意。

1 个答案:

答案 0 :(得分:0)

我不知道我是否很清楚你想要什么,但是如何使用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)    
}