0

我正在尝试设置一个类似于 iOS7 中使用的消息 UI,使用 UICollectionView(利用 UICollectionViewFlowLayout 与 UIDynamics 的子类化)。给定一个 NSString,我需要计算 UITextView 的必要大小,这样文本就不会被剪切。我已经尝试过sizeWithAttributes:Core Text 的CTFramesetterSuggestFrameSizeWithConstraints方法,但是这两种方法的高度都比它们应该的要小。我也尝试使用隐藏的文本视图来计算框架,但是为每条消息填充一个 textView 相对昂贵。我在这里设置了一个测试项目。知道我可能会错过什么吗?谢谢!

4

2 回答 2

4

尝试将您的 NSString 转换为 NSAttrbutedString 并使用:

- (CGRect)boundingRectWithSize:options:context:;

您还需要使用以下三个消除 UITextView 中的边缘插图:

textView.contentInset = UIEdgeInsetsZero;
[textView setTextContainerInset:UIEdgeInsetsZero];
[textView.textContainer setLineFragmentPadding:0];
于 2013-10-03T02:02:12.103 回答
0

这比 iOS7 有点老,我猜你可以只使用自动布局约束(我就是这样做的)。但这就是许多应用程序的做法,并将为您指明正确的方向:

文本视图的动态高度

于 2013-10-02T21:35:52.973 回答