您好,我环顾四周,还没有找到解决我问题的方法。我正在尝试将 collectionView 的项目水平居中,其中项目的宽度和大小都不同。因此,该部分中的某些行可能有 2 个项目,有些可能只有 1 个。我见过的大多数解决方案都设置了 UIEdgeInsets 但由于我不知道该行是否包含多少项目,除了不知道项目大小,我一直很难让它工作。
我附上了一张图片,向您展示我目前拥有的东西。任何建议将不胜感激
您好,我环顾四周,还没有找到解决我问题的方法。我正在尝试将 collectionView 的项目水平居中,其中项目的宽度和大小都不同。因此,该部分中的某些行可能有 2 个项目,有些可能只有 1 个。我见过的大多数解决方案都设置了 UIEdgeInsets 但由于我不知道该行是否包含多少项目,除了不知道项目大小,我一直很难让它工作。
我附上了一张图片,向您展示我目前拥有的东西。任何建议将不胜感激
选择正确的 UI Widget,以最小的努力实现您想要的。根据您的屏幕截图UITableView
应该是实现这一目标的正确选择。
这里有一些提示
使用UITableViewCell
带有水平和垂直居中标签的自定义UITableViewCell
使用动态大小,这样如果文本增长,那么单元格也会增长。
去掉单元格的分隔符和背景色,单元格的contentView。
快乐编码
可以使用riteshhgupta编写的开源项目TagCellLayout在GitHub
.
初始化布局的示例代码:
import TagCellLayout
let tagCellLayout = TagCellLayout(alignment: .center, delegate: self)
collectionView.collectionViewLayout = tagCellLayout
我知道您可能会为此编写大量代码,但这会很有帮助,甚至您可以自定义不同的布局对齐方式。