我创建了一个检查特定条件的简单函数。如果是这种情况,则调用另一个以编程方式创建按钮的函数,该函数随机显示图像(加上其他内容)。
在创建按钮之前,我想检查按钮是否已经存在并将其删除,以便创建一个新的随机按钮。 另一个用例可能是检查第一个函数,如果按钮已经存在并且只是删除它。
无论我做什么Xcode说我在声明之前尝试使用变量(这是合乎逻辑的,但我不知道如何更改它)。
func check() {
if condition is met {
createButton()
}
}
funk createButton()
let number = arc4random_uniform(3)
let multiButton = SKSpriteNode(imageNamed: "multi\(number)")
multiButton.size = CGSize(width: frame.size.width / 5, height: frame.size.width / 5)
multiButton.position = CGPoint(x: frame.midX, y: frame.minY + colorSwitch.size.height)
multiButton.name = "multiButton"
multiButton.isUserInteractionEnabled = false
addChild(multiButton)
}
现在正如我写的那样,如果按钮已经存在,我想检查第一个函数createButton(),如果是这样,只需删除它,或者在创建按钮之前在第二个函数中删除它,如果它已经存在并再次删除它这样就可以创建一个新的。
我试图使用:
multiButton.removeFromParent()
但这不起作用,因为我尝试在创建变量之前访问该变量。
感谢您的帮助。
答案 0 :(得分:0)
向您的班级添加button
(或您想要调用的任何内容)属性。创建按钮时,将其分配给属性,下次需要创建按钮时,首先调用button.removeFromSuperview()
,然后重新分配新按钮。
为什么不只是拥有一个只指向按钮的单个实例的属性,而不是删除和创建按钮,只需更改按钮的标题,操作和/或其他按钮属性。