textView 自适应高度

参考

改变textView Frame的值
@implementation TextViewCell
- (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 重新计算高度
  UITableView *tableView = [self tableView];
  [tableView beginUpdates];
  [tableView endUpdates];
}
text Marsonry布局
   [_iContentTextView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.mas_equalTo(self.contentView.mas_top);
        make.left.mas_equalTo(self.contentView.mas_left).offset(kAspectWidth(10));
        make.right.mas_equalTo(self.contentView.mas_right).offset(kAspectWidth(-10));
        make.height.mas_greaterThanOrEqualTo(kAspectHeight(50));
        make.bottom.mas_equalTo(self.contentView.mas_bottom).offset(kAspectHeight(-10));
    }];

注意点
1.使用 iOS 8 的特性自动计算 cell 高度,或者在 heightForRow 中自己实现计算高度的代码。
2.UITextView 的 scrollEnable 要设置 NO
3.更新 table view 的高度使用 beginUpdates 和 endUpdates
4.Text view 更新内容后要保存数据,以免重新加载 cell 时数据丢失

你可能感兴趣的:(textView 自适应高度)