Динамическое изменение размера UICollectionViewCell по ширине UICollectionView, но вертикальное определение размера на основе содержимого? - PullRequest
0 голосов
/ 14 февраля 2020

У меня есть вертикальный макет потока UICollectionView, который представляет 16x9 изображений. При нажатии на изображение ячейка расширяется по вертикали, чтобы добавить некоторые детали об изображении.

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

То, что я хотел бы сделать, но, похоже, не может заставить его работать, когда я устанавливаю автоматический c макет в представлении коллекции:

1) Размер ширины ячейки и ее представления содержимого дочерний к ширине представления коллекции минус некоторый запас. 2) Ограничьте ширину представления UIImage шириной представления содержимого. 3) Ограничить соотношение сторон изображения UIImage до 16x9. 4) Закрепить изображение в верхней части представления содержимого в ячейке - для этого, похоже, работает верхнее пространство для суперпредставления. 5) Разверните представление содержимого в ячейке по вертикали, когда я показываю другой вид под изображением. 6) В идеале представление в 5 выше также будет динамически изменяться в зависимости от его собственного содержимого. (Я почти уверен, что смогу справиться с этой частью, поскольку я проделал то же самое с этим конкретным представлением вне ячейки представления коллекции.

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

Все, что я получаю, это 50х50 ящиков, когда я пытаюсь это сделать. Я уверен, что это должно быть возможно сделать через раскадровку, а не программно, но, похоже, не могу понять это.

Изображения, иллюстрирующие то, чего я хочу достичь. Я прошу прощения за затемнение в центре изображения. Не уверен, что я нарушил бы какие-либо правила копирования-записи, поэтому вычеркнул их.

Пример свернутой ячейки с изображением:

свернутой ячейки с изображением

Пример развернутой ячейки с изображением

расширенная ячейка w ih изображение

...