我有一个tableView,用户选择一行并出现一个复选标记,这些行被放入一个数组中。当tableView加载如何选择特定行时。这是我发现并尝试过的但它没有用的东西:
let rowToSelect:NSIndexPath = NSIndexPath(row: 1, section: 0);
self.userTableView.selectRow(at: rowToSelect as IndexPath, animated: true, scrollPosition: .none)
答案 0 :(得分:1)
我相信你想"检查"您在某个变量中选择的索引的复选标记。如果这是您想要的,您可以使用tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
方法执行此操作,如:
myCell.checked = checkedIndexes[indexPath.row] ?? false
我假设你有一个带有checked: Bool
变量的自定义单元格,所以如果你在checkedIndexes
变量中设置了值,那么就设置false
。< / p>
警告:由于重复使用单元格,false
值非常重要。
这只是一个建议,你可以按照自己喜欢的方式去做。
selectRow(at indexPath: IndexPath?, animated: Bool, scrollPosition: UITableViewScrollPosition)
方法只是选择行,它不会执行与逻辑相关的任何操作。为此,您必须使用tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
之前建议的代码从UITableViewDelegate
实施myCell.checked = checkedIndexes[indexPath.row] ?? false
。