【问题标题】:Constant line spacing with variable item size in UICollectionViewUICollectionView 中具有可变项目大小的恒定行距
【发布时间】:2017-06-29 17:31:38
【问题描述】:

我有一个带有水平滚动和可变大小项目的 UICollectionView。

“水平”行中的项目之间是否可以保持恒定间距?

谢谢。

【问题讨论】:

  • 在我看来,您的单元格大小都相同,只是标签的大小不同。您应该发布您的单元格创建代码 - 您要为 sizeForItem 发送什么?

标签: ios uicollectionview uikit uicollectionviewlayout


【解决方案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 倍)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-07
    • 2011-03-27
    • 2019-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多