Ios 如何使用不同的行数重新加载UITableView节?

Ios 如何使用不同的行数重新加载UITableView节?,ios,swift,uitableview,swift3,Ios,Swift,Uitableview,Swift3,这是一个简单的想法,但我似乎无法找到正确的解决方案 我有一个包含许多部分的UITableView,包括标题视图 我希望能够隐藏/删除我拥有的部分中的每个tableview单元,然后用一个漂亮的动画重新加载它们 我的问题是节的数量可能与以前不同,节中的行数可能与以前不同 我不能简单地淡出整个tableview,然后重新加载,然后淡入,因为我需要标题视图始终可见并与tableview一起滚动 我需要将它们删除,因为隐藏和显示将是一个带有活动指示器的“淡入淡出”动画。只需使用tableView方法即可

这是一个简单的想法,但我似乎无法找到正确的解决方案

我有一个包含许多部分的UITableView,包括标题视图

我希望能够隐藏/删除我拥有的部分中的每个tableview单元,然后用一个漂亮的动画重新加载它们

我的问题是节的数量可能与以前不同,节中的行数可能与以前不同

我不能简单地淡出整个tableview,然后重新加载,然后淡入,因为我需要标题视图始终可见并与tableview一起滚动


我需要将它们删除,因为隐藏和显示将是一个带有活动指示器的“淡入淡出”动画。

只需使用tableView方法即可

[self.tableView insertSections:(nonnull NSIndexSet *) withRowAnimation:(UITableViewRowAnimation)]
[self.tableView insertRowsAtIndexPaths:(nonnull NSArray<NSIndexPath *> *) withRowAnimation:(UITableViewRowAnimation)]
“正确”是指:插入/删除前的节/行数量,加上或减去插入/删除后的行和节数量。

您可以使用以下方法:

self.tableView.reloadRows(at: [indexPath], with: .fade)

这里的索引路径是要重新加载的特定行。如果要更改行数,则必须更改数据源中的项目数。或者,您可以更改numberOfRowsInSection返回的值,以便链接可以使用的动画

let pathsForNewCells = [indexPathOne, indexPathTwo, indexPathThree]

myTableView.beginUpdates()
myTableView.insertRows(at: pathsForNewCells, with: [UITableViewRowAnimation])
myTableView.endUpdates()
因此,根据高度,将在不重新加载单元格的情况下设置动画

let pathsForNewCells = [indexPathOne, indexPathTwo, indexPathThree]

myTableView.beginUpdates()
myTableView.insertRows(at: pathsForNewCells, with: [UITableViewRowAnimation])
myTableView.endUpdates()