【问题标题】:Autosize UI CollectionView to it's content将 UI CollectionView 自动调整为其内容
【发布时间】:2013-05-23 14:29:16
【问题描述】:

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

我的目标是 popOver 自动调整为 CollectionView 的内容。因此,如果我只有 4 个单元格,那么它应该很小。如果我有更多的细胞,它应该更大。我想避免popOver中留下的空白。

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

有什么建议吗?

【问题讨论】:

    标签: ios xcode uipopovercontroller uicollectionview autosize


    【解决方案1】:

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

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

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

    popOver.frame = _collectionView.frame;
    

    [popOver sizeToFit];
    

    【讨论】:

    • 适用于 iOS 7,但在 iOS 8 中仍然存在问题
    猜你喜欢
    • 2011-08-31
    • 1970-01-01
    • 2013-02-09
    • 2013-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-13
    • 1970-01-01
    相关资源
    最近更新 更多