如何在水平方向上将具有动态宽度的collectionView项目居中居中?

时间:2018-10-22 23:33:56

标签: ios swift uicollectionview uicollectionviewlayout uicollectionviewflowlayout

您好,我已经环顾四周,但尚未找到解决我问题的方法。我正在尝试将collectionView的项目水平居中放置,其中所有项目的宽度和大小都不同。因此,本节中的某些行可能只有2个项目,有些可能只有1个项目。我所见过的大多数解决方案都是设置UIEdgeInsets,但是由于我不知道该行是否包含多少个项目,除了不知道之外物品的大小,我一直很难使它起作用。

Sample Image

我已附上一张图片,向您展示我目前所拥有的。任何建议将不胜感激

2 个答案:

答案 0 :(得分:1)

选择正确的UI窗口小部件,以最小的努力实现所需的目标。根据您的屏幕截图,git push应该是实现此目标的正确选择。

这里有一些提示

  1. 使用自定义UITableView,标签在UITableViewCell

  2. 内水平和垂直居中
  3. 使用动态大小调整,以便如果文本增长,则单元格也会增长。

  4. 删除单元格的分隔符和背景色,即单元格的contentView。

快乐编码

答案 1 :(得分:0)

您可以使用 riteshhgupta GitHub中编写的开源项目TagCellLayout

用于初始化布局的示例代码:

import TagCellLayout

let tagCellLayout = TagCellLayout(alignment: .center, delegate: self)
collectionView.collectionViewLayout = tagCellLayout

enter image description here

我知道您可能为此编写了很多代码,但这将非常有帮助,甚至您可以自定义不同的布局对齐方式。