在加载swift tableView上选择一个特定的行

时间:2017-07-12 18:20:27

标签: swift uitableview

我有一个tableView,用户选择一行并出现一个复选标记,这些行被放入一个数组中。当tableView加载如何选择特定行时。这是我发现并尝试过的但它没有用的东西:

let rowToSelect:NSIndexPath = NSIndexPath(row: 1, section: 0);  

self.userTableView.selectRow(at: rowToSelect as IndexPath, animated: true, scrollPosition: .none)

1 个答案:

答案 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