Swift4:如何在 UITableViewController 中使用 reloadData 和 deselectRow?
Swift4 : How to use reloadData & deselectRow in UITableViewController?
我尝试在 viewWillApper 的 UITableView 上重新加载数据。
但是 deselectRow 动画效果不佳。
如何制作 reloadData 和 deselectRow 动画?
override func viewWillAppear(_ animated: Bool) {
self.tableView.reloadData()
if let indexPathForSelectedRow = tableView.indexPathForSelectedRow {
self.tableView.deselectRow(at: indexPathForSelectedRow, animated: true)
}
super.viewWillAppear(animated)
}
以下不同。淡入淡出动画时间有点短
override func viewWillAppear(_ animated: Bool) {
if (self.tableView.indexPathForSelectedRow != nil){
self.tableView.reloadRows(at: [self.tableView.indexPathForSelectedRow!], with: .fade)
}
super.viewWillAppear(animated)
}
我可以使用取消选择行动画更新单元格。
override func viewWillAppear(_ animated: Bool) {
var indexes = self.tableView.indexPathsForVisibleRows
var i = 0
for var records in self.tableView.visibleCells{
records.textLabel?.text = textDataArray[indexes![i].row]
i = i + 1
}
}
无需重新加载整个 table,您可以直接更新单元格的内容:
override func viewWillAppear(_ animated: Bool) {
let indices = self.tableView.indexPathsForVisibleRows ?? []
for index in indices {
guard let cell = self.tableView.cellForRow(index) else { continue }
cell.textLabel?.text = textDataArray[index.row]
}
super.viewWillAppear(animated)
}
我尝试在 viewWillApper 的 UITableView 上重新加载数据。 但是 deselectRow 动画效果不佳。 如何制作 reloadData 和 deselectRow 动画?
override func viewWillAppear(_ animated: Bool) {
self.tableView.reloadData()
if let indexPathForSelectedRow = tableView.indexPathForSelectedRow {
self.tableView.deselectRow(at: indexPathForSelectedRow, animated: true)
}
super.viewWillAppear(animated)
}
以下不同。淡入淡出动画时间有点短
override func viewWillAppear(_ animated: Bool) {
if (self.tableView.indexPathForSelectedRow != nil){
self.tableView.reloadRows(at: [self.tableView.indexPathForSelectedRow!], with: .fade)
}
super.viewWillAppear(animated)
}
我可以使用取消选择行动画更新单元格。
override func viewWillAppear(_ animated: Bool) {
var indexes = self.tableView.indexPathsForVisibleRows
var i = 0
for var records in self.tableView.visibleCells{
records.textLabel?.text = textDataArray[indexes![i].row]
i = i + 1
}
}
无需重新加载整个 table,您可以直接更新单元格的内容:
override func viewWillAppear(_ animated: Bool) {
let indices = self.tableView.indexPathsForVisibleRows ?? []
for index in indices {
guard let cell = self.tableView.cellForRow(index) else { continue }
cell.textLabel?.text = textDataArray[index.row]
}
super.viewWillAppear(animated)
}