UITableView insertRowAtIndexPaths然后scrollToRowAtIndexPath绘制单元格两次

时间:2010-03-02 19:00:56

标签: iphone uitableview insert scroll

我正在我的桌子中插入一个我知道不可见的新单元格(我知道它不在屏幕的底部),所以我然后调用scrollToRowAtIndexPath,例如。

[tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:myIndexPath] withRowAnimation:UITableViewRowAnimationBottom];
[tableView scrollToRowAtIndexPath:myIndexPath atScrollPosition:UITableViewScrollPositionBottom animated:YES];

然而,当我这样做时,我实际上可以看到单元格被绘制/动画两次,并且从插入中移除UITableViewRowAnimationBottom意味着当插入应该可见时(例如在第2行),它不会被动画化。

我是如何解决此动画问题的?

谢谢,
保罗

1 个答案:

答案 0 :(得分:1)

您可以检查该行是否可见 - 如果可见,则跳过滚动,否则使用UITableViewRowAnimationNone。如果你调用UITableView的-cellForRowAtIndexPath :,如果该行不可见则返回nil。