我正在尝试致电( cellForRowAt indexPath:IndexPath )
从按钮手动创建方法,如何才能完成该记录,我已经尝试在UITableView
上重新加载数据方法。
它没有用。
self.myTableView.reloadData()
为什么我需要这样做是因为我正在尝试从stackoverflow实现一个解决方案,所以解决方案如下所示:
func configureVisibleCells(for tableView: UITableView?, animated: Bool) {
self.tableView(tableView, configureRowsAtIndexPaths: tableView?.indexPathsForVisibleRows, animated: animated)
}
func tableView(_ tableView: UITableView?, configureRowsAtIndexPaths indexPaths: [Any]?, animated: Bool) {
for indexPath in indexPaths as? [IndexPath] ?? [] {
let cell: UITableViewCell? = tableView?.cellForRow(at: indexPath)
if cell != nil {
self.tableView(tableView, configureCell: cell, forRowAt: indexPath, animated: animated)
}
}
}
func tableView(_ tableView: UITableView?, configureCell cell: UITableViewCell?, forRowAt indexPath: IndexPath?, animated: Bool) {
// Cell configuration
}
“在
中配置单元格tableView(_ tableView: UITableView?, configureCell cell: UITableViewCell?, forRowAt indexPath: IndexPath?, animated: Bool) method and call this method in your tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell .
,当您需要重新加载可见单元格时,请调用方法
tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell"
现在我要像发布解决方案的人所说的那样称呼它。
答案 0 :(得分:0)
请勿手动致电cellForRowAtIndexPath
。那只能由系统调用,否则将导致不确定的行为。相反,您可以做的是调用一个函数,该函数将依次在内部调用cellForRowAtIndexPath
。这是因为在调用cellForRowAtIndexPath
之前,系统需要调用其他方法才能正确布局单元格。
例如:行数,节数,高度等。
您可以使用reloadRows(at:with:)
的{{1}}函数来重新加载可见单元格的行。
看看这个:documentation。