滚动视图中的一种分页方式
Posted
技术标签:
【中文标题】滚动视图中的一种分页方式【英文标题】:One way paging in scrollview 【发布时间】:2017-12-14 01:35:38 【问题描述】:有没有办法允许在 UIScrollView 中进行分页,但将分页限制在一个方向。
例如:允许用户翻页背景(向左)但不能向前翻页。用例用于某种类型的入职。我知道我可以添加向前移动的按钮,启用或禁用它们,并删除滑动,但我宁愿不这样做。
【问题讨论】:
【参考方案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)
【讨论】:
以上是关于滚动视图中的一种分页方式的主要内容,如果未能解决你的问题,请参考以下文章
表格视图单元格中的滚动视图将无法正确显示图像,并且在 swift 4 中的分页模式下有一个额外的页面