Я немного борюсь с размером ячеек в UICollectionView. В андроиде можно легко "завернуть" размер ячейки. Как и в iOS, у вас есть вызов функции «GetCell», и вы решаете, насколько большим он будет.
Разница в iOS заключается в том, что в функции «getCell» (UICollectionViewController) кажется, что вы не можете выбрать размер ячейки (или содержимого). Если я изменю размер, он проигнорирует его и все равно будет использовать общий «ItemSize» CollectionView (который одинаков для всех ячеек).
Иногда это приводит к не очень красивым представлениям. Например, если у меня есть горизонтальный список с изображениями, я хочу, чтобы расстояние между изображениями было одинаковым, независимо от того, имеет ли одно изображение 200x200, а другое 400x200. Таким образом, размер ячейки также должен быть другим.
Для разных ячеек можно определить разный размер. Вы можете использовать делегата Collectionview и функцию GetSizeForItem (= sizeForItemAtIndexPath в ObjC). Проблема в том, что эта функция вызывается ДО фактической функции GetCell.
Итак, если у меня есть более сложная ячейка, например, с некоторыми метками. В моей функции "GetCell" я создаю эту ячейку, и в конце, возвращая ячейку, я знаю, какого размера она должна быть. Однако в функции GetSizeForItem эта информация еще недоступна, потому что ячейка по-прежнему «нулевая».
Единственный способ, которым я мог бы это сделать, - это создать UIView для ячейки (чтобы я мог запросить размер) в момент вызова GetSizeForItem. Но это не кажется хорошим дизайном, потому что я создаю UIView до «GetCell», где я создам его снова.
Есть ли что-то, что я упускаю из виду?
С уважением, Мэтт