Loo*_*zie 5 self sizing uicollectionviewcell ios14
堆栈: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
}
Run Code Online (Sandbox Code Playgroud)
但是,您可以将一个contentView属性传递给此函数(如果您的单元格是UICollectionViewCell您已经拥有的子类)
解决方案(适用于我尝试过的所有 iOS 版本):
override func preferredLayoutAttributesFitting(
_ layoutAttributes: UICollectionViewLayoutAttributes
) -> UICollectionViewLayoutAttributes {
layoutAttributes.bounds.size.height = contentView.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize).height
return layoutAttributes
}
Run Code Online (Sandbox Code Playgroud)
瞧,它又起作用了。
如果有人能解释一下后台发生了什么,iOS 14 发生了什么变化,我将不胜感激......
我并不是说这就是所有 iOS 14 自调整单元格问题的解决方案,但值得一试!:)
| 归档时间: |
|
| 查看次数: |
4692 次 |
| 最近记录: |