我在视图中的故事板上创建了一些UIButton。按下一个按钮,我将它们全部隐藏,并弹出一堆以编程方式创建的新UIButton(其中一个是“后退”按钮)。
当我按下后退按钮(隐藏新按钮并显示原始按钮)时,它们不再起作用。 据我所知,它根本不涉及@IBAction。它没有注册匹配。
//Hide buttons originally
for button in menuButtonArray {
button.isHidden = true
button.isEnabled = false
}
//Reveal buttons when "back" button is hit
for button in menuButtonArray {
button.isHidden = false
button.isEnabled = true
}
我尝试使用.isUserInteractionEnabled无济于事。我尝试删除以编程方式创建的按钮(而不仅仅是隐藏它们)。我尝试隐藏包含按钮而不是按钮本身的堆栈。
我认为这应该只是隐藏并显示按钮,但是以某种方式破坏了它们?
更奇怪的是,它不会破坏所有按钮。我的堆栈中的顶部和底部按钮有效,但中间的6个按钮无效。
更新
下面是我如何创建按钮并将其添加到menuButtonArray的方法。 我已经检查了是否在启用和禁用按钮前后对每个按钮进行了打印,看似正确地添加和删除了标签。而且,它们隐藏和隐藏都没有问题。谢谢您的帮助!
var menuButtonArray: [UIButton] = [UIButton]()
override func viewDidLoad() {
menuButtonArray += [button1, button2, button3, button4, button5, button6, button7]
}
答案 0 :(得分:0)
啊哈!谢谢您的帮助!我想到了。 @finalstatic我检查了图层。当我以编程方式创建按钮时,我使用UIStackView的网格来排列它们。我以为,如果为空,它们只会通过点击到达其下一层。显然不是,虽然哈哈! 我也通过隐藏UIStackView来解决它!