我在 SO 上看到了很多与此相关的问题,但是,没有一个与我的问题有关。
我要创建一个具有消息传递功能的应用程序。与 Apple 的 Mail 和 LinkedIn 在他们的应用程序中的 Mail 功能类似,我希望有UITableView
3 行。第三行具有UITextView
随着用户类型而增长的。我的代码如下:
- (void)textViewDidChange:(UITextView *)textView {
if (bodyText.contentSize.height > currentContentHeight) {
currentContentHeight = bodyText.contentSize.height;
[tblView beginUpdates];
[tblView endUpdates];
[bodyText setFrame:CGRectMake(0, 0, 310.0, currentContentHeight)];
bodyText.selectedRange = NSMakeRange(textView.text.length - 1, 0);
} else {
currentContentHeight = minimumContentHeight;
[tblView beginUpdates];
[tblView endUpdates];
}
}
当我在 iPhone 上按下回车键时,它会下降并且可以完美运行。问题是,如果我去中心或任何其他中间部分UITextView
,它似乎会产生有趣的行为,因为它得到了contentSize
不正确的。例如:
- 我按回车 10 次
- 转到第五行并输入“狗”
- 它
contentHeight
基于第 5 行,如果这有意义吗?
有没有办法根据当前的所有文本来计算它?如果我在上面遗漏了什么,请告诉我。我广泛阅读以下内容:
http://dennisreimann.de/blog/uitextview-height-in-uitableviewcell/
https://stackoverflow.com/questions/985394/growth-uitextview-and-uitableviewcell