在 iOS 13 中使用上下文使集合视图布局无效时,不会调用 PreferredLayoutAttributesFitting

Sha*_*ili 6 ios uicollectionview swift ios13

我有 UICollectionView 和流布局,其中估计大小设置为automaticSize

layout.estimatedItemSize = UICollectionViewFlowLayout.automaticSize

我在单元格中有 UITextView 输入,我的目标是拥有自动调整大小的单元格。因此,在单元格输入中的每个文本更改中,我都会使布局中更改的单元格与上下文无效。

let context = UICollectionViewFlowLayoutInvalidationContext()
context.invalidateFlowLayoutAttributes = false
context.invalidateItems(at: [indexPath])
collectionView.collectionViewLayout.invalidateLayout(with: context)
Run Code Online (Sandbox Code Playgroud)

为了获得正确的单元格高度,我覆盖preferredLayoutAttributesFitting单元格并动态计算高度。它在 iOS 12 上运行得很好,collectionView.collectionViewLayout.invalidateLayout(with: context)强制preferredLayoutAttributesFitting调用。但在 iOS 13 上,除非我滚动集合视图,否则不会调用它。

我找不到 iOS 13 中的任何更改UICollectionViewFlowLayoutInvalidationContext,有什么想法吗?