UICollectionViewCell с динамическими размерами изображения — При прокрутке u изображение теряет свои первоначальные ограничения при повторном использовании ячейки, прикрепленной к тестовому приложению

#ios #swift #uicollectionview #constraints #uicollectionviewcell

#iOS #swift #uicollectionview #ограничения #uicollectionviewcell

Вопрос:

Я хотел бы получить некоторую помощь, пожалуйста.

У меня есть UICollectionViewCell для сценария адаптации, каждая ячейка содержит одно изображение с разными размерами, которые устанавливаются динамически.

Я использую WWLayout, аналогичный SnapKit, для обработки ограничений.

Проблема в том, что когда я прокручиваю и ячейка используется повторно, ограничения нарушаются, и изображение теряет свои начальные размеры.

Я прикрепил тестовое приложение.

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

Спасибо.

Ответ №1:

В OnBoardingItemView.swift функции layoutUI() , непосредственно перед макетом imageView , попробуйте добавить эту строку:

 imageView.removeConstraints(imageView.constraints)
  

Комментарии:

1. Конечно, я полностью забыл также удалить ограничения. В итоге я добавил ImageView.removeConstraints() внутри prepareForReuse(), большое вам спасибо 😊

Ответ №2:

Изображение не масштабировалось должным образом. Обновите свой код этим, чтобы предотвратить растяжение изображения.

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

Эта переменная находится в OnBoardingItemView.swift, строка 35