我将UITableView与静态单元格一起使用。
如果我使用reloadData
,那么一切都还可以。
如果我尝试reloadRowsAtIndexPaths
它会隐藏行。如果我向上拖动tableView(当单元格更新时),则会出现行。
答案 0 :(得分:10)
如果您的表格单元格是静态的(即,您使用相同的单元格对象来替换当前显示的单元格对象),那么您所看到的就是过渡动画的工件。
这样想。假设您设置了UITableViewAnimationOptionFade。当要替换单元格时,要替换的单元格(在这种情况下是完全相同的对象)添加了淡入动画。然后,正在被替换的单元格(同样,它是所有相同的对象)都添加了淡出动画。最后,单元格实际上在那里,但它是不可见的,因为淡出动画使得单元格对象不可见。
在非静态tableview中,替换单元格是与要替换的单元格不同的对象,这不是问题,因为动画被添加到两个不同的对象中。
答案 1 :(得分:9)
我有同样的问题,这似乎是一个错误。我试验了一些,当我将动画选项设置为UITableViewRowAnimationNone
时,问题就不会发生。当您将该选项设置为UITableViewRowAnimationTop
时,会发生其他一些有趣的事情。
答案 2 :(得分:0)
我通过删除动画解决了这个问题
tableView.reloadRows(at: [yourIndexPath], with: UITableView.RowAnimation.none)
希望这对搜索此内容的人有所帮助。