我对编程有个一般的认识
说有 3个菜单项,其中之一被选中 当我单击另一个时,我需要 取消选中当前选中的一个
说起来容易
关闭所有刚被点击的东西
但随后您最终运行了一个函数 关闭已经关闭的项目
这通常是个问题吗? 这样会占用太多资源吗? 我看不到任何其他方式可以关闭 已经关闭的东西
答案 0 :(得分:0)
在设置一项之前关闭所有项目都不是问题。
但是,如果您仍然只想处理选中的项目,则可以使用条件for循环或映射来完成。
这是for循环示例:
//Class representing the item.
class Item {
var isChecked = false
}
//Array of 3 items.
var items: [Item] = [Item(), Item(), Item()]
//Function that should be called (as @IBAction) when an item is tapped.
func itemIsTapped(itemTag: Int) {
selectItemAt(index: itemTag)
}
//Function that unselected the checked item and select the one that should be.
func selectItemAt(index: Int) {
//This is the part where you UNCHECKED ONLY the CHECKED item.
for item in items where item.isChecked {
item.isChecked = false
}
items[index].isChecked = true
}