Ios UITableView insertRowsAtIndexPaths偏移量

Ios UITableView insertRowsAtIndexPaths偏移量,ios,objective-c,uitableview,reloaddata,Ios,Objective C,Uitableview,Reloaddata,我有一个应用程序,当超过一半的内容被滚动时,会将新行添加到UITableView。添加新单元格时,我使用以下方法: [self.mainTableView beginUpdates]; [self.mainTableView insertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationNone]; [self.mainTableView endUpdates]; 问题是,当新的单元格被添加时,内容偏移量被滚

我有一个应用程序,当超过一半的内容被滚动时,会将新行添加到
UITableView
。添加新单元格时,我使用以下方法:

[self.mainTableView beginUpdates];
[self.mainTableView insertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationNone];
[self.mainTableView endUpdates];
问题是,当新的
单元格
被添加时,内容
偏移量
被滚动到某个地方(无论我使用哪个动画),然后返回到我所在的旧偏移量

我希望没有任何偏移滚动!所以,若用户不看滚动指示器或类似的东西(类似于9gag、facebook和其他应用程序),他甚至不会注意到添加了新的单元格

在这里使用重新加载数据(而不是
insertRowsAtIndexPaths
)时,当
[tableView reloadData]
发生时,也会出现轻微的偏移问题(有时高达150 px,因此即使在
重新加载数据
上,用户也会跳过一两篇文章)

真的需要帮助


谢谢。

您是否考虑过将所有行添加到前面的计数中,并在需要显示时加载新数据?或者仅在滚动动画完成时添加行/重新加载?为什么不尝试使用[self.tableView reloadRowsAtIndexPaths:@[indepath]with RowAnimation:UITableViewRowAnimationNone];,(没有beginUpdate和endUpdates)@Basheer_CAD,因为它引发了一个异常,行丢失,比如数据源没有用这种方法上传…@Wain如果我计划有100多篇文章,我就不能这样做。。。我可以吗?当然可以。只是在需要数据之前不要去获取数据(基于滚动位置)。空行成本较低,最多可以使用数千行(即使在移动设备上不太可能/不太可用)