我有一个包含多个行的表视图,具体取决于用户创建的条目数。 让我们假设用户创建了2个条目,因此我们有2行。
现在,每次点击时,每个行都会创建一个子视图,其中另一个表包含2行和2个UISwitch (就像一棵树.2行,每行扩展到2个新行,每行都有一个UISwitch)
更改所有UISwitch时更新词典词典。 例如以下
[0:[0:false,1:true],1:[0:false,1:false]]
第0行 - >第一个开关:OFF,第二个:ON
第1行 - >第一个开关:OFF,第二个:OFF
场景:
所有UISwitch都是ON,[0:[0:true,1:true],1:[0:true,1:true]]
第0行的第一个UISwitch被关掉 - > [0:[0:false,1:true],1:[0:true,1:true]]
第一排的第二个UISwitch被关掉 - > [0:[0:false,1:true],1:[0: false ,1:false]]
它会按照预期关闭自己,但也会在第一步中针对不同的UI开关行关闭所有其他(粗体)。它似乎记得上一步但是弄乱了行。
代码:
//smallDictionary is a dictionary
//bigDictionary is a dictionary of dictionaries
// smallDictionary is appended to bigDictionary
// row is a variable updated everytime some row is tapped.
@IBAction func switchChanged(sender: UISwitch) {
if sender.on == true {
smallDictionary[sender.tag]! = true
bigDictionary[row]! = globalswitchSaveDict
}
else {
smallDictionary[sender.tag]! = false
bigDictionary[row]! = globalswitchSaveDict
}
}
答案 0 :(得分:0)
修正了问题。
必须添加代码才能更新正确的smallDict,如下所示:
@IBAction func switchChanged(sender: UISwitch) {
smallDictionary = bigDictionary[row]!
if sender.on == true {
smallDictionary[sender.tag]! = true
bigDictionary[row]! = globalswitchSaveDict
}
else {
smallDictionary[sender.tag]! = false
bigDictionary[row]! = globalswitchSaveDict
}
}