Авторезистируйте высоту UICollectionView, чтобы настроить ее размер содержимого
У меня есть UICollectionView, кнопка, которая создает новую ячейку в виде коллекции. И я хочу, чтобы UICollectionView отрегулировал его размер в соответствии с его размером содержимого (когда есть одна или две ячейки, тогда UICollectionView является коротким, если много ячеек UICollectionView достаточно велико).
Я знаю, как получить размер контента:
collectionView.collectionViewLayout.collectionViewContentSize
Но я не знаю, где использовать это значение. Я был бы признателен, если кто-нибудь поможет мне разобраться, как сделать UICollectionView автоматической настройкой высоты.
UPD:
Я опубликовал в GitHub демо-проект, описывающий проблему: https://github.com/avokin/PostViewer
Ответы
Ответ 1
Я не думаю, что размер контента - это то, что вам нужно. Я думаю, вы хотите настроить количество экранной недвижимости, потребляемой коллекционным представлением, не так ли? Это потребует регулировки рамки. Размер содержимого включает в себя область вне экрана (прокрутка), а также экранное представление.
Я ничего не знаю, что помешало бы вам просто изменить размер кадра на лету:
collectionView.frame = CGRectMake (x,y,w,h);
[collectionView reloadData];
Если я правильно понимаю вас.
Ответ 2
Используйте ограничение высоты для представления коллекции и обновите его значение с высотой содержимого, когда это необходимо. См. Этот ответ: fooobar.com/questions/127761/...
Ответ 3
Шаги по изменению кадра UICollectionView:
-
Задайте для свойства translateAutoresizingMaskIntoConstraints значение YES для супервизора коллекционирования (если вы используете AUTOLAYOUT)
-
Затем обновите кадр коллекционирования как:
collectionView.frame = CGRectMake (x,y,w,h);
[collectionView reloadData];