在 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)——要么 ScaleAspectFit 或 ScaleAspectFill
【讨论】:
以上是关于在 collectionView 中重用时不应用 UIImageView 大小的主要内容,如果未能解决你的问题,请参考以下文章
取消注册单元格以在 TableView/CollectionView 中重用有啥意义吗?
iOS 使用多个 CollectionView 重用同一个单元格