UICollectionView 中具有可变项目大小的恒定行距
Posted
技术标签:
【中文标题】UICollectionView 中具有可变项目大小的恒定行距【英文标题】:Constant line spacing with variable item size in UICollectionView 【发布时间】:2017-06-29 17:31:38 【问题描述】:我有一个带有水平滚动和可变大小项目的 UICollectionView。
“水平”行中的项目之间是否可以保持恒定间距?
谢谢。
【问题讨论】:
在我看来,您的单元格大小都相同,只是标签的大小不同。您应该发布您的单元格创建代码 - 您要为 sizeForItem 发送什么? 【参考方案1】:您需要提供单元格的可变宽度。从 UICollectionViewDelegateFlowLayout
实现此方法func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize
let size = (items[indexPath.item] as NSString).size(attributes: nil)
return CGSize(width: size.width + yourTextPadding, height: yourCellHeight)
您还可以提供标签的字体属性以进行精确计算或仅使用一些常量(如文本宽度的 2 倍)。
【讨论】:
以上是关于UICollectionView 中具有可变项目大小的恒定行距的主要内容,如果未能解决你的问题,请参考以下文章
在垂直堆栈视图中具有自动项目大小的水平分页 UICollectionView?
具有流式布局的 UICollectionView 不会将多个项目放在一行上
具有单元格间距的 UICollectionView 存在滚动问题
如何将 UICollectionView 项目的大小调整为具有集合视图高度的正方形大小?