ios - 为什么更改 TableViewCell 中的开关会影响其他单元格中的其他开关?

标签 ios swift uitableview uiswitch

我正在为自定义 TableViewCell 中的 UISwitch 苦苦挣扎。

UITableViewCell 中的开关将单元格中的项目添加到另一个数组。但是,我注意到,当我更改一个开关时,它也会更改其他单元格中的其他开关。

我认为问题出在 TableView dequeueReusableCell 函数上。

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    guard let cell = tableView.dequeueReusableCell(withIdentifier: "currencyCell") as? currencyCell else { return UITableViewCell() }
}

最佳答案

您必须将开关的值存储在 UITableviewCell“外部”的某处,以便能够将其重置为特定开关在该单元格中的最后一个值。 我建议使用委托(delegate)模式从单元格中保存它(例如,当 UISwitch 的 值更改时)。然后在单元格出队后从 tableView:cellForRowAt: 函数设置它。

关于ios - 为什么更改 TableViewCell 中的开关会影响其他单元格中的其他开关?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46830955/

相关文章:

iphone - iPhone、iPhone-retina 和 iPad 上 UITableViewCell 中的默认图标大小是多少?

ios - 有没有办法使用应用程序特定密码检索 Apple DSID?

ios - 隐藏的iCarousel元素反射效果

ios - 如何屏蔽和添加阴影到 UIView

ios - 隐藏 UITableView 页脚

ios - 快速更新 TableView 失败

ios - 在 tableviewheader 中使用 UITextField 进行 self.view.endEditing 时崩溃

ios - 使标签可复制

ios - 我如何访问 firebase .ref 闭包内部的变量并在外部使用它们

swift - iOS swift 3 如何更改 switch 语句中的类型