Подтвердить что ты не робот

Динамический размер ячейки UICollectionView

enter image description here

1) Как я могу достичь, как показано на рисунке UICollectionView?

2) Я пробовал метод -(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath и передавал разные размеры, но он не содержит пробелов между ячейками. Могу ли я удалить эти пробелы? Я хочу различную высоту и ширину для каждой ячейки

Текущий выход: enter image description here.

4b9b3361

Ответ 1

Извините, это очень поздно... Но, возможно, это поможет людям, которые еще не нашли ответа. Если у вас есть изображения в массиве, вы можете просто указать размер изображения и внести корректировки в размер ячейки оттуда:

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
    UIImage *image = [imageArray objectAtIndex:indexPath.row];
//You may want to create a divider to scale the size by the way..
    return CGSizeMake(image.size.width, image.size.height); 
}

Надеюсь, что это поможет.

Ответ 2

Возможно, этот макет будет соответствовать вашим потребностям. Пожалуйста, взгляните на этот проект: https://github.com/betzerra/MosaicLayout

Я не уверен, что 100% он полностью удовлетворит ваши требования, но в худшем случае это может помочь вам написать свой пользовательский UICollecionViewFlowLayout (который является единственным способом достижения вашей цели).

Ответ 3

Вы не можете достичь результата, подобного вашему вопросу, со стандартным UICollectionViewFlowLayout, который в своей базовой реализации (без подкласса) создает сетку.

Чтобы получить то, что вы хотите, вы должны создать свой собственный подкласс UICollectionViewLayout (или, возможно, UICollectionViewFlowLayout), где вы выполните все вычисления, необходимые для размещения каждого элемента в правом кадре.

Взгляните на отличный учебник и здесь для нечто похожее к чему вы хотите.

Ответ 4

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