2017-08-05 77 views
0

我创建了一个简单的函数来检查某个条件。如果是这样的话,它会调用另一个函数,该函数以编程方式创建一个按钮,随机显示一个图像(加上其他东西)。Swift - 如何删除在函数中创建的按钮?

在创建按钮之前,我想检查按钮是否已经存在并删除它,以便创建一个新的随机按钮。 另一个使用过的例子可能是检查第一个函数,如果按钮已经存在并且只是删除它。

不管我做什么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

为您的班级添加button(或任何您想要调用它的)属性。创建按钮时,将其分配给属性,并在下次需要创建一个按钮时,首先调用button.removeFromSuperview(),然后为其重新分配一个新按钮。

这是如何解决这个问题,但为什么你这样做是这种方式并没有解决。为什么不只有一个属性只指向单个按钮实例,而不是删除和创建按钮,只需更改按钮的标题,操作和/或其他按钮属性即可。

+0

你能给我多一点信息,或者根据什么关键字我可以准确地搜索这个?我仍在学习,有时很难。 – RjC

相关问题