在 collectionView 中重用时不应用 UIImageView 大小

Posted

技术标签:

【中文标题】在 collectionView 中重用时不应用 UIImageView 大小【英文标题】:UIImageView size is not applied when reused in collectionView 【发布时间】:2016-02-11 21:40:32 【问题描述】:

在我的集合视图中,我的一个单元格有一个 UIImageView,它的 UIViewContentMode 是 UIViewContentModeScaleAspectFit。

UIImageView 具有在方向更改时调整其框架大小的约束。

大多数时候一切都很好。但是每隔一段时间, UIImage 会在旋转时被裁剪。它似乎与重用(dequeueReusableCellWithReuseIdentifier)有关,因为它只发生在重用之后。

在我的 prepareForReuse 中,我正在设置约束,因为它们在我的 xib 中。

我已经尝试过 setNeedsDisplay。有人有什么建议吗?

【问题讨论】:

不确定你是否已经这样做了,但我建议你看看这篇文章中标题为How to set auto layout breakpoint in Xcode debugger 的部分:staxmanade.com/2015/06/debugging-ios-autolayout-issues 如果你能在它发生时“抓住”它,它可能帮助消除一些变量:问题所在。 【参考方案1】:

我遇到了一个非常相似的问题。在 xib 中定义单元格的 collectionView。该单元格有一个包含 UIImageView 的视图,它根据方向模式设置宽度约束。原来,UIImageView 上的 contentMode 设置在下面被更改了。我建议看一下 contentMode 并确保它设置得当(see reference)——要么 ScaleAspectFitScaleAspectFill

【讨论】:

以上是关于在 collectionView 中重用时不应用 UIImageView 大小的主要内容,如果未能解决你的问题,请参考以下文章

如何强制刷新重用的 collectionview 单元格?

取消注册单元格以在 TableView/CollectionView 中重用有啥意义吗?

iOS 使用多个 CollectionView 重用同一个单元格

Swift collectionView 不可重用单元格

在添加 LinkPresentation 视图的堆栈上重用单元格时不显示元素

Angular 7 CSS在使用可重用组件时不起作用