【问题标题】:One way paging in scrollview滚动视图中的一种分页方式
【发布时间】:2017-12-14 01:35:38
【问题描述】:

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

例如:允许用户翻页背景(向左)但不能向前翻页。用例用于某种类型的入职。我知道我可以添加向前移动的按钮,启用或禁用它们,并删除滑动,但我宁愿不这样做。

【问题讨论】:

    标签: ios swift uiscrollview uikit


    【解决方案1】:

    我不知道我是否非常了解您想要什么,但是使用 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)
    }
    

    如果您不想朝特定方向前进,可以尝试使用此方法让当前单元格显示并删除数据源和集合中的前一个。

    func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
        let currentPage = Int(scrollView.contentOffset.x / scrollView.frame.width)
        print("current cell: ", currentPage)    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-23
      • 1970-01-01
      • 1970-01-01
      • 2011-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多