UITextView文本在有大量文本时切断

我有一个UITableViewCell子类,其中包含滚动closures的UITextView。 我像这样设置框架,在我的表格视图单元格layoutSubviews方法:

CGRect frame = self.bodyTextView.frame; CGSize size = self.bodyTextView.contentSize; frame.size = size; self.bodyTextView.frame = frame; 

这一直工作得很好,但我注意到,在我有一个特别大量的文本的情况下,文本正在切断。 我已经将文本视图框架背景颜色设置为橙色,所以我可以validation框架设置正确。 这里是一个例子(我只显示文本视图的底部):

在这里输入图像说明

该框架基于文本(在本例中为1019个点)是正确的大小,但是文本在文本视图的底部之前停止。 我也看到文本被切断了一部分,也就是说文本的最后一行文本被水平切掉了一半。 有没有人有一个想法这里发生了什么?

其他几点:

  • 文本视图适用于所有我的表格视图单元格内容较短。
  • 如果我在上面的情况下增加了文本的数量,文本视图高度会增加,但文本仍然会在相同的位置被截断。

根据这个和类似的答案,问题可能是“正确的contentSize只有在UITextView被添加到视图之后才可用…在此之前它等于frame.size”

我build议你以不同的方式计算高度,如-sizeWithFont:或-sizeTofit

使用这个来获取textSize

 // find the text width; so that btn width can be calculate CGSize textSize = [@"YOUR TEXT" sizeWithFont:[UIFont fontWithName:@"Arial" size:20.0] constrainedToSize:CGSizeMake(320.0f, 99999.0f) lineBreakMode:UILineBreakModeWordWrap]; 

然后用下面的方法设置高度:

 CGRect frame = self.bodyTextView.frame; frame.size = textSize; self.bodyTextView.frame = frame; 

希望它可以帮助你。