Подтвердить что ты не робот

Авторезистируйте высоту UICollectionView, чтобы настроить ее размер содержимого

У меня есть UICollectionView, кнопка, которая создает новую ячейку в виде коллекции. И я хочу, чтобы UICollectionView отрегулировал его размер в соответствии с его размером содержимого (когда есть одна или две ячейки, тогда UICollectionView является коротким, если много ячеек UICollectionView достаточно велико).

Я знаю, как получить размер контента:

collectionView.collectionViewLayout.collectionViewContentSize

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

UPD: Я опубликовал в GitHub демо-проект, описывающий проблему: https://github.com/avokin/PostViewer

4b9b3361

Ответ 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];