gpt4 book ai didi

ios - UICollectionView Cell中的动态宽度大小问题

转载 作者:行者123 更新时间:2023-12-01 19:42:44 26 4
gpt4 key购买 nike

我动态设置UICollectionView的每个单元格的宽度根据里面的文字。问题是大多数时候width大小是正确的,但有时单元格大小不正确。

这些是我在单元格中显示的字符串

let tabs = ["1st tab", "Second Tab Second", "Third Tab", "4th Tab", "A"]

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {

let text = tabs[indexPath.row]

let font = UIFont.systemFont(ofSize: 21, weight: UIFont.Weight.regular)
let attributes = font != nil ? [NSAttributedString.Key.font: font] : [:]
let width = text.size(withAttributes: attributes).width

return CGSize(width: width + 16+16+16+35, height: self.menuBarColView.frame.height)

}

它正确显示了第一个、第二个、第三个和第五个,但第 4 个单元格的大小是错误的。这是输出。

enter image description here

请告诉我问题出在哪里?

最佳答案

Selfsize Collection View 单元格 list :

  • 设置 estimated item size除了.zero .如果将其设置为 (1,1)
  • 效果最佳

    例子:
    (collectionView?.collectionViewLayout as? UICollectionViewFlowLayout)?.estimatedItemSize = CGSize(width: 1, height: 1)
  • 布局单元格内容并检查可伸缩内容是否发生变化。
  • 如果您可以在不损失性能的情况下计算它,请返回实际大小
  • 仔细检查以减少重复代码和缓存大小。


  • 如果您的目标是 iOS 10 及更高版本,则可以改用:
    ....estimatedItemSize = UICollectionViewFlowLayout.automaticSize

    关于ios - UICollectionView Cell中的动态宽度大小问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52930787/

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