Scrollview中的一种方式分页



是否有一种方法可以允许在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)    
}

最新更新