这就是我正在做的事情,以便在UITableView
beginUpdates
之后将重点放在同一点上:
CGPoint offset = tableMessageDetail.contentOffset;
// CGPoint textPoint = [self.view convertPoint:cell.txtReply.frame.origin toView:nil];
[tableMessageDetail beginUpdates];
[tableMessageDetail endUpdates];
[tableMessageDetail setContentOffset:offset animated:NO];
//[tableMessageDetail scrollRectToVisible:CGRectMake(cell.frame.origin.x, cell.frame.origin.y, cell.frame.size.width, cell.frame.size.height) animated:YES];
但是,endUpdates
之后的位置,当细胞太高时,会出现在细胞顶部。我也尝试过评论方法,但这也不完美。
答案 0 :(得分:0)
给出一个想法,希望这会有所帮助: 在设置contentOffset之前,删除tableView图层上的所有动画。
[tableView.layer removeAllAnimations];
[tableView setContentOffset:offset animated:NO];
然后,
[tableView scrollToRowAtIndexPath:cell.indexPath atScrollPosition:UITableViewScrollPositionBottom animated:YES];