gpt4 book ai didi

ios - UICollectionView 水平分页,页面之间有空间

转载 作者:技术小花猫 更新时间:2023-10-29 10:33:26 26 4
gpt4 key购买 nike

我正在寻找用 UICollectionView 替换原生 UIPageViewController 水平分页的方法。

到目前为止我做了以下事情:

let layout = UICollectionViewFlowLayout()
layout.scrollDirection = .horizontal
layout.itemSize = collectionView.frame.size
layout.minimumLineSpacing = 0
layout.minimumInteritemSpacing = 10

collectionView.setCollectionViewLayout(layout, animated: false)
collectionView.isPagingEnabled = true
collectionView.alwaysBounceVertical = false

这很好用,我得到了水平分页效果。

现在我想在页面之间添加水平空间(就像你在 UIPageViewController 上使用 UIPageViewControllerOptionInterPageSpacingKey 所做的那样)

到目前为止,我还没有找到一种在不破坏分页效果的情况下添加空格的方法。我正在寻找与 UIPageViewController 相同的行为:单元格应填满整个屏幕宽度,单元格之间的空间应仅在切换页面时可见。

最佳答案

解决方法一:

  1. collectionView.isPagingEnabled = false
  2. 为页面之间的距离添加一个minimumLineSpacing
  3. 实现 targetContentOffsetForProposedContentOffset:withScrollingVelocity: 将 contentOffset 移动到最近的页面。您可以根据 itemSizeminimumLineSpacing 使用简单的数学计算页面,但可能需要一些工作才能正确计算。

方案二:

  1. collectionView.isPagingEnabled = true
  2. 为页面之间的距离添加一个minimumLineSpacing
  3. 分页大小基于 collectionView 的边界。所以让 collectionView 比 screenSize 大。例如,如果您的 minimumLineSpacing 为 10,则将 collectionView 的框架设置为 {0,-5, width+10, height}
  4. 将 contentInset 设置为等于 minimumLineSpacing 以使第一个和最后一个项目正确显示。

关于ios - UICollectionView 水平分页,页面之间有空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42486960/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com