堆栈:Mac OS 10.15.6,Xcode 版本 12.0 (12A7209)
我有一个自行调整大小的收集单元。我覆盖 preferredLayoutAttributesFitting
获得自我调整大小功能。在 iOS 14(“1”)之前,一切都很好。但是,在 iOS 14 中(针对模拟器或实际设备时),此单元格似乎已“损坏”,即现在显示为 (“2”)。此外,布局引擎提示布局约束(“3”)。
你见过类似的问题吗?
最佳答案
我遇到了同样的问题,该单元格在 iOS 11、12、13 上看起来不错,但在 iOS 14 模拟器上不知何故 preferredLayoutAttributesFitting
为每个单元格返回相同的高度,忽略某些单元格需要更高的高度。
iOS 14 上的问题代码(适用于 iOS 13 及更低版本):
override func preferredLayoutAttributesFitting(
_ layoutAttributes: UICollectionViewLayoutAttributes
) -> UICollectionViewLayoutAttributes {
layoutAttributes.bounds.size.height = systemLayoutSizeFitting(UIView.layoutFittingCompressedSize).height
return layoutAttributes
}
但是有一个 contentView
您可以传递给此函数的属性(如果您的单元格是 UICollectionViewCell
的子类,则您已经拥有了)解决方案(适用于我尝试过的所有 iOS 版本):
override func preferredLayoutAttributesFitting(
_ layoutAttributes: UICollectionViewLayoutAttributes
) -> UICollectionViewLayoutAttributes {
layoutAttributes.bounds.size.height = contentView.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize).height
return layoutAttributes
}
瞧,它又可以工作了。如果有人能解释这里发生的事情,iOS 14 中发生了什么变化,我将不胜感激...
我并不是说这是所有 iOS 14 自动调整单元格问题的解决方案,但值得一试! :)
关于uicollectionviewcell - 在 iOS14 中调整 UICollectionViewCell 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63996329/