Я хочу добавить фотографии в одну из ячеек представления моей коллекции, как это делает Snapchat ...
Есть всего два основных требования:
Количество фотографий может быть разным, поэтому общая высота ячеек также должна варьироваться.
Каждая фотография должна сохранять свое соотношение сторон.
Моя первоначальная мысль заключалась в том, чтобы отобразить массив изображений, и прямо перед удалением ячейки из очереди вычислить размер каждой ячейки, сохраняя его соотношение сторон, а затем использовать эти данные для представления изображений внутри представления коллекции внутри ячейки. Однако мои результаты отсутствуют.
Кажется, что изображения имеют размер правильно, однако макет изображения, обрабатываемый UICollectionViewFlowLayout, не размещает изображения должным образом.
Вот метод расчета размеров.
func calculateImageSize(images: [UIImage], bounds: CGRect) -> [CGSize] {
var imageSizes: [CGSize] = []
var imageWidth: Int!
var imageHeight: Int!
var aspectRatio: CGSize!
var convertedRect: CGRect!
for i in 0..<images.count {
imageWidth = images[i].cgImage?.width
imageHeight = images[i].cgImage?.height
aspectRatio = CGSize(width: imageWidth, height: imageHeight)
convertedRect = AVMakeRect(aspectRatio: aspectRatio, insideRect: bounds)
imageSizes.append(CGSize(width: convertedRect.width, height: convertedRect.height))
}
return imageSizes
}
Минимальный интервал между строками и элементами устанавливается равным нулю.
Какие-либо предложения?