UITableView beginUpdate / endUpdate导致滚动到顶部

时间:2015-03-28 06:49:16

标签: ios uitableview uitextview

我一直在努力解决这个常见问题:UITextView UITableViewCell UITableView UITableView UITableViewCell UITableView一件小事。

我有self.tableView.estimatedRowHeight,其中包含自定义self.tableView.rowHeight = UITableViewAutomaticDimension;。我的UITextFieldUITableViewself.tableView beginUpdates的帮助下使用新的iOS8自动调整动态单元格高度,根据ContentView的自动布局增加单元格高度。

我可以正确地增长我的endUpdates的框架,我的{{1}}的单元格高度确实会增长,但每次我调用{{1}}和匹配的{{1}}时, tableView的整个滚动视图强制滚动到表视图的顶部。我有一个滚动到插入符号位置的方法,但是你可以想象,每次在UITextView中创建一个新行时,UITableView会滚动到最顶部,然后滚动到插入符号位置,它就像地狱一样笨拙。

有人有什么想法吗?如有必要,我可以提供视频。干杯, 麦克

2 个答案:

答案 0 :(得分:27)

这也让我感到高兴,看起来self.tableView.estimatedRowHeight就是问题所在。当我估计得足够大时,问题就不复存在了。

我添加了这个并且它到目前为止运作良好:

- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath {
    return UITableViewAutomaticDimension;
}

答案 1 :(得分:6)

我无法对akiraspeirs回答发表评论,但在任何调整大小之前将self.tableView.estimatedRowHeight设置为我的单元格的确切高度摆脱了奇怪的滚动问题。他的第二个解决方案并不适用于我的情况。