В моем представлении коллекции некоторые изображения не масштабируются до "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 все еще растягивается