我试图让UITextView
动态调整大小,并在插入新行时滚动其位置。
textView
位于UITableViewCell
。单元格高度设置为UITableViewAutomaticDimension
。
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
if ([text isEqualToString:@"\n"])
{
NSRange cursor = NSMakeRange(range.location + 1, 0);
NSMutableString *mutableT = [NSMutableString stringWithString:textView.text];
[mutableT insertString:@"\n " atIndex:range.location];
[textView setText:mutableT];
[textView setSelectedRange:cursor];
[textView sizeToFit];
[textView layoutIfNeeded];
[self.myTableView beginUpdates];
[self.myTableView endUpdates];
return NO;
}
return YES;
}
一切正常,直到插入新行并且当前textViews
范围(光标)不在视野范围内。当发生这种情况时,tableView
会滚动到顶部。但是只要插入另一个char
,它就会滚动回正确的位置。
问题:
如何让tableView
不要一直向上滚动?
答案 0 :(得分:0)
在beginUpdates
和endUpdates
来电之间插入此行。
[self.myTableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPathOfYourCell] withRowAnimation:UITableViewRowAnimationNone];