将UI CollectionView自动调整为其内容

时间:2013-05-23 14:29:16

标签: ios xcode uipopovercontroller uicollectionview autosize

我正在使用具有固定大小CollectionViewCells的UICollectionView。我在带有UIPopoverController的popOver中显示这个CollectionView。

我的目标是popOver自动调整大小到CollectionView的内容。所以,如果我只有4个细胞,那么它应该很小。如果我有更多的细胞,它应该更大。我想避免popOver中剩下的空白区域。

所以我不想要一个固定的popOver大小,而是一个变量,取决于CollectionView中的单元格数。

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

我很难自己解决这个问题但最终得到了它。您必须访问Collection View的 collectionViewLayout 属性,然后使用 collectionViewContentSize 方法获取内容的大小。然后,您可以通过设置框架来使用它们来调整集合视图的大小。

CGRect rectangle;
rectangle = _collectionView.frame;
rectangle.size = [_collectionView.collectionViewLayout collectionViewContentSize];
_collectionView.frame = rectangle;

现在您的集合视图已根据其内容调整大小,您可以根据集合视图大小设置popOver的大小。它可能看起来像这样。

popOver.frame = _collectionView.frame;

[popOver sizeToFit];