Swift - 如何删除在函数中创建的按钮?

Swift - How to remove a button created in a function?

我创建了一个简单的函数来检查特定条件。如果是这种情况,它会调用另一个函数,该函数以编程方式创建一个按钮,该按钮随机显示一个图像(加上其他东西)。

在创建按钮之前,我想检查按钮是否已经存在并将其删除,以便创建一个新的随机按钮。 另一个用例可能是在按钮已经存在的情况下检查第一个函数并删除它。

无论我做什么 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()

但这不起作用,因为我尝试在变量创建之前访问它。

感谢您的帮助。

在 class 中添加一个 button(或任何您想称呼它的名称)属性。当您创建一个按钮时,将其分配给 属性,下次您需要创建按钮时,请先调用 button.removeFromSuperview(),然后重新为其分配一个新按钮。

那是如何解决它,但它没有解决为什么你这样做。为什么不只拥有一个只指向按钮的单个实例的 属性,而不是删除和创建按钮,只需更改按钮的标题、操作、and/or 其他按钮属性。