在 swift 中以编程方式删除 UIButton
Remove UIButton Programmatically in swift
我在我的项目中以编程方式添加了多个按钮。我在 viewDidLoad 方法中使用 NSTimer 来调用该函数以每 5 秒添加更多按钮。我的问题是我想从以前创建的视图中清除按钮,因为新按钮是在旧按钮之上创建的。
override func viewDidLoad() {
super.viewDidLoad()
timer = NSTimer.scheduledTimerWithTimeInterval(5, target: self, selector: Selector("subtractTime"), userInfo: nil, repeats: true)
}
func subtractTime() {
let button = UIButton(type: UIButtonType.RoundedRect) as UIButton
//button.removeFromSuperview
for var i = 0; i < size; i++ {
for var j = 0; j < size; j++ {
button.frame = CGRectMake(self.x, self.y, BoxWidthHeight, BoxWidthHeight)
button.setTitle("", forState: UIControlState.Normal)
button.addTarget(self, action: "buttonAction:", forControlEvents: UIControlEvents.TouchUpInside)
button.tag = tagcounter
self.view.addSubview(button)
}
}
}
我读到 button.removeFromSuperview
应该可以完成这项工作,但我没有删除所有按钮,屏幕上仍然保留着相同的内容。
这应该有帮助:
for locView in self.view.subviews {
if locView.isKindOfClass(UIButton) {
locView.removeFromSuperview()
}
}
参考这个,
superview.subviews.forEach ({
if [=10=] is UIButton {
[=10=].removeFromSuperview()
}
})
我在我的项目中以编程方式添加了多个按钮。我在 viewDidLoad 方法中使用 NSTimer 来调用该函数以每 5 秒添加更多按钮。我的问题是我想从以前创建的视图中清除按钮,因为新按钮是在旧按钮之上创建的。
override func viewDidLoad() {
super.viewDidLoad()
timer = NSTimer.scheduledTimerWithTimeInterval(5, target: self, selector: Selector("subtractTime"), userInfo: nil, repeats: true)
}
func subtractTime() {
let button = UIButton(type: UIButtonType.RoundedRect) as UIButton
//button.removeFromSuperview
for var i = 0; i < size; i++ {
for var j = 0; j < size; j++ {
button.frame = CGRectMake(self.x, self.y, BoxWidthHeight, BoxWidthHeight)
button.setTitle("", forState: UIControlState.Normal)
button.addTarget(self, action: "buttonAction:", forControlEvents: UIControlEvents.TouchUpInside)
button.tag = tagcounter
self.view.addSubview(button)
}
}
}
我读到 button.removeFromSuperview
应该可以完成这项工作,但我没有删除所有按钮,屏幕上仍然保留着相同的内容。
这应该有帮助:
for locView in self.view.subviews {
if locView.isKindOfClass(UIButton) {
locView.removeFromSuperview()
}
}
参考这个,
superview.subviews.forEach ({
if [=10=] is UIButton {
[=10=].removeFromSuperview()
}
})