【发布时间】:2015-09-21 13:55:32
【问题描述】:
我有一个表格视图,其中并非所有单元格都一次可见。我正在努力做到这一点,以便当点击一行时,它会在单元格中添加一个复选标记附件。我的问题是它也将它添加到其他行。在我的表格视图中,有 4 行完全显示,而第五行几乎没有显示。如果我选中第一个框,它会在每五个框添加一个复选标记(例如 indexPath.row = 0,5,10,15...),尽管 indexPath.row 不同。
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell: DropDownMenuCell = tableView.dequeueReusableCellWithIdentifier("DropDownMenuCell", forIndexPath: indexPath) as! DropDownMenuCell
cell.dropDownCellLabel?.text = DropDownItems[indexPath.row].Name
return cell
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let selectedCell: DropDownMenuCell = tableView.cellForRowAtIndexPath(indexPath) as! DropDownMenuCell
print(indexPath.row)
if selectedCell.accessoryType == .None {
selectedCell.accessoryType = .Checkmark
} else {
selectedCell.accessoryType = .None
}
}
编辑:为重复道歉,我对这个问题的最初搜索没有显示其他问题。我已经在这里迅速得到了一个有效的答案,或者我会尝试通过目标 c 帖子来解决我的问题。
【问题讨论】:
-
Tableview 单元格被重复使用。您需要维护已被点击的单元格的索引数组,并根据您的数组在
tableView:cellForRowAtIndexPath:中设置复选标记。如果您搜索 StackOverflow,您会发现有关单元重用的其他问题。
标签: ios swift uitableview