Авторазмер UI CollectionView для его содержимого
Я использую UICollectionView с фиксированным размером CollectionViewCells. Я отображаю это CollectionView в popOver с помощью UIPopoverController.
Моя цель заключается в том, чтобы popOver автоматически изменял размер содержимого CollectionView. Так что, если у меня только 4 клетки, то она должна быть маленькой. И если у меня будет больше клеток, это должно быть больше. Я хочу избежать пустого места, оставшегося в popOver.
Поэтому я не хочу фиксированный размер popOver, а переменный в зависимости от количества ячеек в CollectionView.
Какие-либо предложения?
1 ответ
Мне было трудно понять это самому, но наконец-то понял. Вы должны получить доступ к свойству collectionViewLayout представления Collection, а затем использовать метод collectionViewContentSize, чтобы получить размер вашего контента. Затем вы можете использовать их, чтобы изменить размер представления коллекции, установив его рамку.
CGRect rectangle;
rectangle = _collectionView.frame;
rectangle.size = [_collectionView.collectionViewLayout collectionViewContentSize];
_collectionView.frame = rectangle;
Теперь, когда размер представления вашей коллекции соответствует его содержанию, вы можете установить размер popOver в зависимости от размера представления коллекции. Это может выглядеть примерно так.
popOver.frame = _collectionView.frame;
или же
[popOver sizeToFit];