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;
希望它可以帮助你。