我正在做一个练习,其中我使用一个tableview,每行包含4个按钮。 我想要做的是单击每行中的按钮来更改其状态(从正常到突出显示)。 问题是,单元格自动复制我的点击,以便我没有点击的某些按钮突出显示。 此外,每次我向下滚动表格视图并返回上一个位置时,突出显示的按钮位置将自动更改。
我想它必须与我在代码中使用的dequeReusableCell机制有关。 如何防止这种情况发生?提前谢谢!
构建单元格的代码:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("reuseIdentifier", forIndexPath: indexPath) as! ChoiceCell
cell.selectionStyle = .None
return cell
答案 0 :(得分:5)
您绝对不希望阻止单元格出列过程执行其操作。这不是正确的做法。
相反,您的数据模型需要跟踪影响单元格状态的事物(例如是否突出显示按钮)。当某些事情发生改变单元格状态时,除了更改单元格的状态外,还要更新数据模型。
现在,当该单元格滚动时,可以重复使用它来表示数据模型中的其他内容。然后当我们滚动并且我们准备再次表示原始数据对象时,我们使用我们的数据模型将单元格设置为正确的状态。