我UITextView
在每个UITableViewCell
.
UITextViews
调整大小到预加载的文本(通过 计算)heightForRowAtIndexPath
但我不确定如何在AutoLayout
动态添加文本时使用平滑调整大小。它似乎被切断了。
使用AutoLayout
,我怎样才能平滑调整 a 的大小UITableViewCell
并UITextView
适应正在输入的文本UITextView
?
我UITextView
在每个UITableViewCell
.
UITextViews
调整大小到预加载的文本(通过 计算)heightForRowAtIndexPath
但我不确定如何在AutoLayout
动态添加文本时使用平滑调整大小。它似乎被切断了。
使用AutoLayout
,我怎样才能平滑调整 a 的大小UITableViewCell
并UITextView
适应正在输入的文本UITextView
?
接受的答案是已弃用的答案,在 iOS 8 sdk 中有一个干净的解决方案
在 viewDidLoad 中,告诉 tableView 自动计算行高:
tableView.estimatedRowHeight = 44.0f;
tableView.rowHeight = UITableViewAutomaticDimension;
实现 UITextViewDelegate 协议的 textViewDidChange: 方法,并告诉 tableView 在每次编辑文本时重新绘制自己:
- (void)textViewDidChange:(UITextView *)textView {
[tableView beginUpdates];
[tableView endUpdates];
}
并且不要忘记在 Storyboard/IB 或 tableView:cellForRowAtIndexPath 中的某处设置 UITextView 委托:
你不能。表格视图单元格不通过布局约束导出其高度,而是通过委托方法tableView:heightForRowAtIndexPath:
。
你大概可以像这样达到你想要的效果:
beginUpdates
和。endUpdates
这将导致它重新查询高度,并动画到新的大小(通过扩展,调整文本视图的大小)。