uicollectionviewcell - iOS14中的自定尺寸UICollectionViewCell
问题描述
堆栈: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 自动调整单元问题的解决方案,但值得一试!:)
推荐阅读
- angular - Angular Universal Express 服务器不断加载并因 ERR_EMPTY_RESPONSE 而失败
- java - 验证电子邮件作为服务
- python - 从两个 python 文件创建独立的 makefile
- sql - 在 SQL SERVER 中合并两个 XML CTE
- python - 在 Python 中终止线程
- ios - 如何在 struct 中设置枚举以用作标识符来初始化自定义对象
- python - 多对多关系中的Django更新字段
- android - Activity 启动很慢,因为 RecyclerView 图像
- javascript - 确保此属性是反应性的,无论是在数据选项中,还是在类中
- python - scipy.optimize.leastq 最小化最小二乘和