UITableView reloadRowsAtIndexPaths隐藏行

时间:2012-07-30 16:00:33

标签: uitableview ios5

我将UITableView与静态单元格一起使用。 如果我使用reloadData,那么一切都还可以。

如果我尝试reloadRowsAtIndexPaths它会隐藏行。如果我向上拖动tableView(当单元格更新时),则会出现行。

3 个答案:

答案 0 :(得分:10)

如果您的表格单元格是静态的(即,您使用相同的单元格对象来替换当前显示的单元格对象),那么您所看到的就是过渡动画的工件。

这样想。假设您设置了UITableViewAnimationOptionFade。当要替换单元格时,要替换的单元格(在这种情况下是完全相同的对象)添加了淡入动画。然后,正在被替换的单元格(同样,它是所有相同的对象)都添加了淡出动画。最后,单元格实际上在那里,但它是不可见的,因为淡出动画使得单元格对象不可见。

在非静态tableview中,替换单元格是与要替换的单元格不同的对象,这不是问题,因为动画被添加到两个不同的对象中。

答案 1 :(得分:9)

我有同样的问题,这似乎是一个错误。我试验了一些,当我将动画选项设置为UITableViewRowAnimationNone时,问题就不会发生。当您将该选项设置为UITableViewRowAnimationTop时,会发生其他一些有趣的事情。

答案 2 :(得分:0)

我通过删除动画解决了这个问题

tableView.reloadRows(at: [yourIndexPath], with: UITableView.RowAnimation.none)

希望这对搜索此内容的人有所帮助。

相关问题