在reloadData之后保存UITableView中的选定行,可以通过以下方法实现:
tableView:willDisplayCell:forRowAtIndexPath:
来保存选定行的indexPath。var selectedIndexPath: IndexPath?
func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
if cell.isSelected {
selectedIndexPath = indexPath
}
}
reloadData
之后,使用selectRow
方法重新选定保存的indexPath。tableView.reloadData()
if let selectedIndexPath = selectedIndexPath {
tableView.selectRow(at: selectedIndexPath, animated: false, scrollPosition: .none)
}
这样,在reloadData之后,选定的行将被保存并重新选定。
领取专属 10元无门槛券
手把手带您无忧上云