gpt4 book ai didi

ios - UICollectionView 单元格忽略 UICollectionViewDelegateFlowLayout - sizeForItemAt

转载 作者:行者123 更新时间:2023-11-28 23:25:33 28 4
gpt4 key购买 nike

我正在尝试布局我的 collectionViewCell 的大小,以便每行中有 7 个单元格(很简单吧?)。

cell很简单,只有一个UILabel,上、左、下、右约束均为0。

我已经设置了 sizeForItemAt 方法,如下所示,确保我的 Controller 是 collectionViewDelegateFlowLayout、collectionViewDelegate 和 collectionViewDataSource,并且 collectionview.delegate 和 .datasource = self。

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let safeScreenWidth = self.view.frame.size.width - 30

let width: CGFloat = (safeScreenWidth / 7)
let height: CGFloat = 40.0

return CGSize(width: width, height: height)
}

该方法被正确调用(使用断点和 print() 检查),但是单元格决定完全忽略给定的大小,并得出足以包含其标签文本的大小(如果标签的文本为空,则应用程序因“无效参数不满足:!CGSizeEqualToSize(size, CGSizeZero)”而崩溃。

我尝试设置不同的尺寸,例如宽度= 200,高度= 200;但没有任何改变,正如我所说,单元格总是非常小,足以容纳其标签的文本。

一个快速解决方案是在 cellForItemAt 中设置标签的高度和宽度约束,但我想了解为什么 sizeForItemAt 不起作用。

最佳答案

出于某种原因,自动估计的大小比 sizeForItemAt 方法中计算的大小具有更高的优先级。

尝试将 collectionViews Estimate Size 设置为 None

CollectionView - Size Inspector - Estimate Size

关于ios - UICollectionView 单元格忽略 UICollectionViewDelegateFlowLayout - sizeForItemAt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58858768/

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