Коллекционные представления композиционных макетов - макет на лету

Увидев замечательную сессию "Advances in Collection View Layout Session", я задумался, можно ли использовать возможности, реализованные в новомCollection View Compositional Layouts framework для создания макета на основе ранее неизвестных размеров ячеек.

Моя проблема:

Представьте себе горизонтальную галерею изображений с двумя уровнями, фотографии могут быть "вертикальными" или "горизонтальными", и приложение загружает их, когда они необходимы для отображения, и они предоставляются случайным образом ("горизонтально" или "вертикально"). Итак, мы должны заполнить галерею "случайным шаблоном" (в стиле Pinterest, вот как это сделать сUICollectionViewFlowLayout).

Я не могу увидеть шаблон "группа" для заполнения ячеек, потому что макет имеет бесконечные возможности, вертикальные деления могут появляться для создания групп, но также не могут.

Можно ли архивировать с помощью Collection View Compositional Layouts?


Спасибо.

1 ответ

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

(Если вам нужен еще больший контроль, вы можете создать свою группу как NSCollectionLayoutGroup.custom, что позволяет вам вручную установить рамку каждого элемента. Но в этой простой ситуации нет необходимости в таких крайностях, и, кроме того, предполагается, что вы знаете фрейм во время объявления макета, чего вы, вероятно, не знаете.)

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