Коллекция Просмотр композиционных макетов - макет на лету - PullRequest
0 голосов
/ 28 февраля 2020

После просмотра замечательных достижений в сеансе макета представления коллекции я подумал, возможно ли использовать возможности, реализованные в новой структуре Collection View Compositional Layouts, для создания макета на основе ранее неизвестных размеров ячеек.

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

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

Random layout illustrating the question

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

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


Спасибо.

1 Ответ

0 голосов
/ 28 февраля 2020

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

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

...