我尝试在viewWillApper上的UITableView上重新加载数据。 但deselectRow动画效果不佳。 我该怎么做reloadData&取消选择动画?
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)
}
答案 0 :(得分:1)
您可以直接更新单元格的内容,而不是重新加载整个表格:
setx_tester.py, 16: x=5
setx_tester.py, 17: print('the value of x is', x)
the value of x is 5
setx_tester.py, 20: print('-'*50)
--------------------------------------------------
setx_tester.py, 22: print(inner_func())
setx_tester.py, 12: return 15
15
setx_tester.py, 23: print(func1())
49
setx_tester.py, 24: print(func2())
abcabcabc
setx_tester.py, 26: print('-'*50)
--------------------------------------------------
setx_tester.py, 29: setx.FILENAMES.append(file1.__file__)
setx_tester.py, 30: print(inner_func())
setx_tester.py, 12: return 15
15
setx_tester.py, 31: print(func1())
**path to file**/file1.py, 2: return 7**2
49
setx_tester.py, 32: print(func2())
abcabcabc
setx_tester.py, 34: print('-'*50)
--------------------------------------------------
setx_tester.py, 36: setx.FILENAMES.pop()
setx_tester.py, 39: setx.FOLLOWALL = True
setx_tester.py, 40: print(inner_func())
setx_tester.py, 12: return 15
15
setx_tester.py, 41: print(func1())
**path to file**/file1.py, 2: return 7**2
49
setx_tester.py, 42: print(func2())
**path to file**/file2.py, 2: return 'abc'*3
abcabcabc
答案 1 :(得分:0)
我可以通过取消选择行动画更新单元格。
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
}
}