如何防止UITableViewCell重复和重用?

Tin*_*yik -1 cocoa-touch uitableview ios swift

我正在做一个练习,其中我使用一个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
Run Code Online (Sandbox Code Playgroud)

nhg*_*rif 5

您绝对不希望阻止单元格出列过程执行其操作.这不是正确的方法.

相反,您的数据模型需要跟踪影响单元格状态的事物(例如是否突出显示按钮).当某些事情发生改变单元的状态时,除了更改单元的状态外,还要更新数据模型.

现在,当该单元格滚动时,可以重复使用它来表示数据模型中的其他内容.然后当我们滚动并且我们准备再次表示原始数据对象时,我们使用我们的数据模型将单元格设置为正确的状态.