UICollectionView单元格内容的高度(基于属性字符串)

时间:2014-08-01 15:37:56

标签: ios objective-c uicollectionview uicollectionviewcell

我有一个UICollectionView,其中包含4种不同类型的单元格,其中一个单元格应包含UIView内部UITextViewUITextView将在其中设置不同的动态高度字符串,因此整个单元格也需要相应地调整其高度 - 我无法在其中滚动。

我通过size属性获取属性字符串的高度。我将单元格高度指定为方法中的数量。

- (CGSize)collectionView:(UICollectionView *)collectionView
                  layout:(UICollectionViewLayout*)collectionViewLayout
  sizeForItemAtIndexPath:(NSIndexPath *)indexPath {

}

工作得很好 - 我可以看到细胞更长。

现在,出于某种原因,我无法让其子视图更长 - 设置一个新的框架根本没有任何效果:

CGRect frameCellOriginal = self.textTest.frame;
CGRect frameCellNew = CGRectMake(frameCellOriginal.origin.x, frameCellOriginal.origin.y, frameCellOriginal.size.width, frameCellOriginal.size.height / 2 + atString.size.height);
self.textTest.frame = frameCellNew;

我尝试在setNeedsDisplay上使用UITextView方法,但这并没有改变任何内容。我还尝试在单元格及其子视图上使用setAutoresizesSubviews:YESsetAutoresizingMask:UIViewAutoresizingFlexibleHeight,但它也没有用。

有人有任何想法吗?

修改

我注意到第一次滚动浏览集合时,包含文本的视图与.xib文件中的视图一样小。然后,如果我再次滚动它,它的白色背景UIView会变长并填充整个单元格 - 按照我设置的高度。在第3个卷轴上,UITextView也取得了所述高度。

如果我在同一个方法中设置所有3个视图,我不知道为什么会这样...

0 个答案:

没有答案