每个UITextView
都有一个可编辑的UITableViewCell
。
UITextViews
调整预加载文本的大小(通过heightForRowAtIndexPath
计算),但我不确定如何动态添加文本时使用AutoLayout
进行平滑调整大小。它似乎被切断了。
使用AutoLayout
,如何平滑调整UITableViewCell
和UITextView
的大小以使输入的文字适合UITextView
?
答案 0 :(得分:7)
已接受的答案是已弃用的答案,在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中设置UITextView委托:cellForRowAtIndexPath:
答案 1 :(得分:3)
你做不到。表格视图单元格不会通过布局约束来获取其高度,而是通过委托方法tableView:heightForRowAtIndexPath:
来获取。
你可能会达到这样的效果:
beginUpdates
和endUpdates
。这将导致它重新查询高度,并为新大小设置动画(通过扩展,调整文本视图的大小)。