gpt4 book ai didi

ios - 两个部分与一个 uiswitch? - swift

转载 作者:行者123 更新时间:2023-11-29 01:06:21 28 4
gpt4 key购买 nike

我有一个工作开关和一个开关状态,它使用索引路径的行号和存储在字典中的 bool 值来跟踪打开哪个开关。虽然这仅适用于一个部分。我很难防止它溢出到下一部分,如下所示:

Section 0 Row 3 switch turned on

Section 1 Row 3 switch turned on without me pressing it.

有没有办法只保持该特定部分的开关?现在我正在使用两个原型(prototype)单元格,一个用于我正在显示的数据,其中仅包含一个开关,另一个单元格用于显示部分标题。

以下是一些我认为有助于查看我所写内容的代码:

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("advCell", forIndexPath: indexPath) as! advDataCell

cell.advDelegate = self

switch(indexPath.section) {
case 0:
cell.lblCategoryItem.text = foodCategories[indexPath.row]["name"]


case 1:
cell.lblCategoryItem.text = activitiesCategories[indexPath.row]["name"]

default:
return cell
}


if advSwitchStates[indexPath.row] != nil {

cell.advOnOffSwitch.on = advSwitchStates[indexPath.row]!
}
else {
cell.advOnOffSwitch.on = false
}
cell.advOnOffSwitch.on = advSwitchStates[indexPath.row] ?? false

return cell
}



func switchCell(advSwitchCell: advDataCell,didChangeValue value: Bool) {
let indexPath = tableView.indexPathForCell(advSwitchCell)!

print("This advanced filter controller has received the switch event.")
advSwitchStates[indexPath.row] = value

}

我用来存储开关状态的东西:

var advSwitchStates = [Int: Bool]()

最佳答案

在您的 cellForRowAtIndexPath 中,您将回收的单元出队,就像您应该做的那样。您需要完全配置单元格中的每个 View ,在所有情况下。这意味着在所有情况下您都需要为 advOnOffSwitch 设置一个值。

在您的 cellForRowAtIndexPath 方法中,您有一个用于部分值 0、1 或任何其他值的 switch 语句。如果该部分的值不是 0 或 1,则返回时不会设置 advOnOffSwitch 的状态。如果您回收已设置 advOnOffSwitch 的单元格,它将保持打开状态,这是您不希望看到的。像这样更改你的 switch 语句:

    switch(indexPath.section) {
case 0:
cell.lblCategoryItem.text = foodCategories[indexPath.row]["name"]


case 1:
cell.lblCategoryItem.text = activitiesCategories[indexPath.row]["name"]

default:
cell.advOnOffSwitch.on = false
return cell
}

使用该代码,您可以将开关强制切换到关闭位置,以启动第 0 或 1 部分以外的部分。

关于ios - 两个部分与一个 uiswitch? - swift ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36318236/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com