具有动态图像尺寸的UICollectionViewCell-在u滚动时,当单元重复使用TestApp时,图像将失去其初始约束

问题描述

请给我一些帮助。

对于onBoarding场景,我有一个UICollectionViewCell,每个单元包含一个具有不同尺寸的图像,这些图像是动态设置的。

我正在使用类似于SnapKit的WWLayout来处理约束。

问题是当我滑动并重新使用单元格时,约束打破,图像失去了初始尺寸。

我已经附上了TestApp。

https://www.dropbox.com/s/tx141lpr0uzlhbx/Test%20App.Image.Resize.zip?dl=0

谢谢。

解决方法

图像未正确缩放。使用此代码更新代码,以防止图像拉伸。

private lazy var imageView: UIImageView = {
    let imageView = UIImageView()
    imageView.contentMode = .scaleAspectFit
    return imageView
}()

此变量位于OnBoardingItemView.swift中的第35行

,

OnBoardingItemView.swift的功能layoutUI()中,在布局imageView之前,尝试添加以下行:

imageView.removeConstraints(imageView.constraints)