В моем представлении коллекции некоторые изображения не масштабируются до "scaleAspectFill"

Вот фрагмент моего представления коллекции collectionView. В моем представлении коллекции некоторые изображения не масштабируются до "scaleAspectFill". Изображения, снятые в альбомной ориентации, кажутся правильно "scaleApectFill" внутри ячейки, однако любое изображение, снятое в портретной ориентации, кажется, масштабируется неправильно и приводит к растягиванию изображения. Например, если вы посмотрите на фрагмент collectionView, изображение лексуса кажется растянутым. Что я могу делать не так? Я провел некоторое исследование, и кажется, что многие люди пытаются изменить размер рамки просмотра изображения перед установкой режима контента (какой режим контента должен быть первым). Тем не менее, у меня есть режим контента в раскадровке и снова в коде. Может ли компоновка viewview изменять размер кадра viewview, что приводит к потере режима контента?

Вот код внутри "cellForItemAt", который отображает изображение:

    webImageManger.downloadImage(with: URL(string: data.mainPicture), options: .init(rawValue: 0), progress: { (receivedSize, expectedSize) in
      print("recieved size \(receivedSize)")
      print("expextedSize \(expectedSize)")
    }, completed: { (image, error, cacheType, finished, url) in
      if (image != nil) {

        cell.ImageOfItem.autoresizingMask = [.flexibleTopMargin, .flexibleHeight, .flexibleRightMargin, .flexibleLeftMargin, .flexibleTopMargin, .flexibleWidth]
        cell.ImageOfItem.contentMode = .scaleAspectFill
        cell.ImageOfItem.layer.cornerRadius = 2
        cell.ImageOfItem.image = image
      }

      //if item image was updated
      if error != nil{
        if error?._code == 403{
            print(error)
          print("oldurl")
          FirebaseHelper.getNewURLforMainImage(itemID: data.itemID, completion: { (mainPicUrl) in
            self.ref.child("Items").child(data.itemID).updateChildValues(["MainPicture" : mainPicUrl])
            self.itemsLoaded[indexPath.row].mainPicture = mainPicUrl
            collectionView.reloadData()
          })
        }
      }

    })

Дополнительная информация:

  • В настоящее время используется SDwebImage для загрузки URL-адреса изображения
  • Изображения принимаются пользователями и загружаются в FirebaseStorage, URL-адрес загрузки затем связывается с элементом в базе данных
  • Макет представления коллекции создается с помощью TRMosaicLayout Framework
  • Я напечатал imageOFItems contentMode, и все настроены на Aspect Fill
  • При вводе подробного представления контроллера lexus точно такое же изображение lexus, которое было растянуто на предыдущей странице, теперь выглядит так, как будто у него установлен правильный ContentMode, а изображение не растянуто. При возвращении в коллекцию вид изображения Lexus все еще растягивается

0 ответов

Другие вопросы по тегам