我有一个 UICollectionView,其中一个 UICollectionViewCells 包含一个 UITextView。我的目标是自动调整 UICollectionViewCell 以适应文本视图的内容。
我已经覆盖了collectionView:sizeForItemAtIndexPath,但我在不创建无限循环的情况下努力获取文本视图的内容高度值。
通常要自动调整 UITextView 的大小,我会执行以下操作:
CGRect frame = textView.frame;
frame.size.height = textView.contentSize.height;
textView.frame = frame;
但要在 sizeForItemAtIndexPath 中做到这一点,我需要一个指向 UITextView 的指针。为了得到那个指针,我发现自己调用了 cellForItemAtIndexPath,但是因为调用了 sizeForItemAtIndexPath,所以它是一个无限循环。
我怀疑我错过了一种预先调整视图大小并让 UICollectionView 尊重这一点的方法,但它似乎默认为 UICollectionViewFlowLayout 定义的 50x50 值。
我讨厌做的其他(黑客)想法:
- 有另一个隐藏的 UITextView,我可以将内容加载到其中并获取它的高度。
- 实现等效逻辑以自行计算内容高度。
谢谢!