解释:
1) 我启动类上方的按钮:
var myButton = UIButton()
2) 然后我根据数组中的项目数创建 x 个按钮
for letter in arrayOfLetters {
myButton = UIButton(frame: CGRect(x: buttonX, y: 500, width: someFloat, height: someFloat))
buttonX = buttonX + thirdFloat //spacing
myButton.layer.cornerRadius = 5
myButton.backgroundColor = UIColor.darkGrayColor()
myButton.setTitle("\(letter)", forState: UIControlState.Normal)
myButton.titleLabel?.text = "\(letter)"
myButton.addTarget(self, action: "myButtonPressed:", forControlEvents: UIControlEvents.TouchUpInside)
self.view.addSubview(myButton)
}
3) 稍后,一旦用户按下了正确的按钮,我调用一个函数来刷新,我想删除所有按钮。这样我就可以根据新数组生成新按钮
myButton.removeFromSuperview()
问题:
但是这没有任何作用,我尝试给按钮一个标签并通过标签 == tagId 删除按钮,但没有任何反应。
我可以删除所有 View ,但它会删除其他所有内容,
我试过了,但还是没有发生
var buttons = [myButton]
for button in buttons as! [UIButton] {
button.removeFromSuperview()
}
我想删除我添加的所有按钮,我要么不删除它们,要么删除 View 中的所有内容
最佳答案
轻松修复:
1) 在类内部,在任何函数之外:
var buttonsArray = [UIButton]()
2) 在此处声明myButton
并添加append
行:
for letter in arrayOfLetters {
var myButton = UIButton(frame: CGRect(x: buttonX, y: 500, width: someFloat, height: someFloat))
...
self.buttonsArray.append(myButton)
}
3) 删除按钮:
for btn in buttonsArray {
btn.removeFromSuperview()
}
解释:
如果您想一次轻松删除所有元素,请始终将您使用循环创建的元素存储在数组中。
关于ios - 如何删除我用循环创建的多个按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37189776/