我有这段代码:
rails_stdout_logging
我允许我在我选择的单元格上打勾并删除之前的复选标记。我遇到的问题是,如果列表很大并且单元格不在视图中,则在选择新单元格时不会删除复选标记。
我尝试添加tableview.reloaddata(),但没有做任何事。
思想?
答案 0 :(得分:0)
cellForRowAtIndexPath
会返回nil
。
要获得类似效果的单选按钮,您需要执行以下操作:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = UITableViewCell()
configureCell(cell, atIndexPath: indexPath)
return cell
}
func configureCell(cell: UITableViewCell, atIndexPath indexPath: NSIndexPath) {
if indexPath == selectedIndexPath {
cell.accessoryType = .Checkmark
} else {
cell.accessoryType = .None
}
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
selectedIndexPath = indexPath
// Note indexPathsForVisibleRows may be nil depending on your app's content.
// zip just joins two arrays together, into a single array of tuples.
zip(tableView.indexPathsForVisibleRows!, tableView.visibleCells).forEach({ indexPath, cell in
configureCell(cell, atIndexPath: indexPath)
})
}