- 在初始化UITableView的时候,设置动态计算高度,并给一个初始值44
self.tableView.rowHeight = UITableViewAutomaticDimension;
self.tableView.estimatedRowHeight = 44;
- 在heightForRowAtIndexPath中设置
return UITableViewAutomaticDimension;
- 在textViewDidChange事件中计算UITextView的高度并刷新
- (void)textViewDidChange:(UITextView *)textView {
CGRect bounds = textView.bounds;
// 计算 text view 的高度
CGSize maxSize = CGSizeMake(bounds.size.width, CGFLOAT_MAX);
CGSize newSize = [textView sizeThatFits:maxSize];
bounds.size = newSize;
textView.bounds = bounds;
// 让 table view 重新计算高度
//textView的高度不想等就更新 让 table view 重新计算高度
if (bounds.size.height != self.contentView.bounds.size.height) {
UITableView *tableView = [self tableView];
[tableView beginUpdates];
[tableView endUpdates];
}
self.contentView.bounds = bounds;
}
//找出上层的UIView即UITableView
- (UITableView *)tableView {
UIView *tableView = self.superview;
while (![tableView isKindOfClass:[UITableView class]] && tableView) {
tableView = tableView.superview;
}
return (UITableView *)tableView;
}
网友评论