Самоклейка изображений в ячейке представления коллекции - PullRequest
0 голосов
/ 31 октября 2018

Я хочу добавить фотографии в одну из ячеек представления моей коллекции, как в Snapchat ...

enter image description here

Существует только два основных требования:

  1. Количество фотографий будет варьироваться, поэтому общая высота ячейки также должна изменяться.

  2. Каждая фотография должна сохранять соотношение сторон.

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

Размеры изображений, похоже, имеют правильный размер, однако макет изображения, обработанный UICollectionViewFlowLayout, не размещает изображения должным образом

enter image description here enter image description here

Вот метод расчета размера.

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
}

Минимальный интервал между строками и пунктами устанавливается равным нулю.

Есть предложения?

1 Ответ

0 голосов
/ 31 октября 2018

Я не думаю, что речь идет о размере изображения. Это макет, который нужно настроить. Я сделал быстрый поиск и нашел эту библиотеку, которая может помочь: https://github.com/rubygarage/collection-view-layouts

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...