gpt4 book ai didi

ios - 使用 AutoLayout 使 UICollectionViewCell 的高度与其内容(所有 subview 的总高度)相匹配

转载 作者:行者123 更新时间:2023-11-29 05:50:54 25 4
gpt4 key购买 nike

我找到了下一个答案,使 UIView 的高度与其内容相匹配 https://stackoverflow.com/a/39527226/7767664

我测试了它,它工作得很好(如果 Storyboard中的 UIView 高度尺寸大于或小于其内容,那么在运行时它会自动调整自身大小以匹配内容)。

但是如果我使用 UICollectionViewCell 而不是 UIView 那么什么都不会改变,单元格的高度永远不会改变,它始终具有我们在 Storyboard 属性中的硬编码高度:

enter image description here

我还能做什么?

此外,我在 UIControllerView 中有 2 个部分(2 列)。一行中的两个单元格应该具有相同的大小,即使它们的大小内容不同(当使用 RecyclerView 和 GridLayoutManager 时,Android 中 native 实现了这样的方法,非常简单)

更新

它可以与 UIView 一起使用,因为我将其顶部约束设置为 Safe Are'a top

我无法使用 UICollectionViewCell 做到这一点

更新2

看来我这个答案有了一些进展https://stackoverflow.com/a/25896386/7767664

但是我需要 newFrame.size.height = CGFloat(ceilf(Float(size.高度)))

当我们使用这个解决方案时,不要在单元格底部添加任何约束,否则它将不起作用

使用这个解决方案,我实际上无法使用任何边距,否则单元格底部的某些部分将变得不可见

我想这个问题可以解决https://stackoverflow.com/a/31279726/7767664

最佳答案

您可以尝试在 collectionView Extension 或 native collectionViewController 类中调用此函数:

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize
{
//return something like the size. I write you an example how to use it.
// You can easily change the value according to your stuff contents height.

return CGSize(width: collectionView.frame.size.width/3, height: 100)
}

关于ios - 使用 AutoLayout 使 UICollectionViewCell 的高度与其内容(所有 subview 的总高度)相匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55676984/

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