http://stackoverflow.com/questions/18368567/uitableviewcell-with-uitextview-height-in-ios-7 - (void)textViewDidChange:(UITextView *)textView { if ([textView getContentHeight] > 31) { self.noteHeightLayoutConstraint.constant = [textView getContentHeight] + 20; [self.tableView beginUpdates]; [self.tableView endUpdates]; [self scrollToCursorForTextView:textView]; } } - (void)textViewDidBeginEditing:(UITextView *)textView { [self scrollToCursorForTextView:textView]; } - (void)scrollToCursorForTextView:(UITextView *)textView { CGRect cursorRect = [textView caretRectForPosition:textView.selectedTextRange.start]; cursorRect = [self.tableView convertRect:cursorRect fromView:textView]; if (![self rectVisible:cursorRect]) { cursorRect.size.height += 8; [self.tableView scrollRectToVisible:cursorRect animated:NO]; } } - (BOOL)rectVisible:(CGRect)rect { CGRect visibleRect; visibleRect.origin = self.tableView.contentOffset; visibleRect.origin.y += self.tableView.contentInset.top; visibleRect.size = self.tableView.bounds.size; visibleRect.size.height -= self.tableView.contentInset.top + self.tableView.contentInset.bottom; return CGRectContainsRect(visibleRect, rect); }