具有动态图像尺寸的 UICollectionViewCell - 当您滚动时,当重新使用单元格时,图像会失去其初始约束 附加 TestApp
Posted
技术标签:
【中文标题】具有动态图像尺寸的 UICollectionViewCell - 当您滚动时,当重新使用单元格时,图像会失去其初始约束 附加 TestApp【英文标题】:UICollectionViewCell with a dynamic image dimensions - As u scroll, the image loses its initial constraints when the cell is re-used TestApp attached 【发布时间】:2020-10-22 03:17:52 【问题描述】:我需要一些帮助。
我有一个用于登机场景的 UICollectionViewCell,每个单元格包含一个具有不同尺寸的动态设置的图像。
我正在使用类似于 SnapKit 的 WWLayout 来处理约束。
问题是当我扫过并且重新使用单元格时,约束中断并且图像失去其初始尺寸。
我已附加了一个 TestApp。
https://www.dropbox.com/s/tx141lpr0uzlhbx/Test%20App.Image.Resize.zip?dl=0
谢谢。
【问题讨论】:
【参考方案1】:在OnBoardingItemView.swift
,函数layoutUI()
,就在你布局imageView
之前,尝试添加这一行:
imageView.removeConstraints(imageView.constraints)
【讨论】:
当然我也完全忘记删除约束了。我最终在 prepareForReuse() 中添加了 imageView.removeConstraints(),非常感谢?【参考方案2】:图像未正确缩放。使用此代码更新您的代码以防止图像拉伸。
private lazy var imageView: UIImageView =
let imageView = UIImageView()
imageView.contentMode = .scaleAspectFit
return imageView
()
这个变量在 OnBoardingItemView.swift 第 35 行
【讨论】:
以上是关于具有动态图像尺寸的 UICollectionViewCell - 当您滚动时,当重新使用单元格时,图像会失去其初始约束 附加 TestApp的主要内容,如果未能解决你的问题,请参考以下文章