ios - 如何删除我用循环创建的多个按钮?

标签 ios swift uiview uibutton

解释:

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/

相关文章:

ios - UIView 挥动 ARM

ios - 单元测试网络调用(失败测试)- Swift

ios - 如何使用带有自动布局约束的动画移动 View 在 iOS 上

ios - Sirikit 支持的服务及其扩展使用

swift - UIView 不从 xib 文件 Swift 调整大小

ios - 调用 UIView initWithFrame 即使从 NIB 加载自身?

ios - swift 3 : How to add UISlider?

ios - 如何仅在设置parentView frame时设置 subview 的frame?

swift - 触摸结束时如何更改 UISlider Thumb 外观

ios - 将 UIButton 作为 subview 添加到 UITabBar