【发布时间】:2013-09-02 20:08:56
【问题描述】:
如何使用自动布局根据其子视图的大小更改UICollectionViewCell 的大小?
我的UICollectionViewCells 每个人的contentView 中只有一个视图。这是我的一个自定义UIView 子类,它使用自动布局自动调整自身大小以适应其所有子视图。它还正确实现了-intrinsicContentSize。然而UICollectionView,或者更确切地说是它的布局,似乎并不关心这个。
我正在使用UICollectionViewFlowLayout,并尝试过:
- 将
itemSize保留为其默认值。这给了我大小为 50 x 50 的单元格。 - 实现委托方法
-collectionView:layout:sizeForItemAtIndexPath:。但是,当调用此方法时,单元格(显然)还没有出现在屏幕上,也没有被自动布局系统更新。
有什么方法可以使用标准 Apple 类根据子视图更改单元格的大小?还是我必须实现我自己的UICollectionViewLayout 子类或其他什么?
【问题讨论】:
-
原理和stackoverflow.com/questions/18477220/…一样,可惜要先给出尺寸。
-
上述作者有一个关于使用“免费”单元格的评论 - 您创建然后保留的单元格,填充然后获取大小。您应该可以使用 [cell systemLayoutSizeFittingSize:UILayoutFittingCompressedSize] - 我现在遇到了问题,但其中一个应该可以工作。
标签: ios objective-c uicollectionview autolayout uicollectionviewcell