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