我在启用按钮之上有一个禁用按钮:
绿色按钮已禁用。当我点击它时,它会触发点击后面的蓝色按钮。
我尝试过:
self.testButton.enabled = YES;
self.testButton.userInteractionEnabled = NO;
但我仍然有同样的行为
有什么办法可以防止这种情况下的蓝色按钮点击事件吗?
编辑:
通过不真正禁用按钮而是将其目标更改为 nil 来修复:
[myButton addTarget:nil action:nil forControlEvents:UIControlEventTouchUpInside];
[myButton setImage:[UIImage imageNamed:@"disabledImage.png"] forState:UIControlStateNormal];
最佳答案
是的,蓝色按钮总是会得到一个 Action ,因为绿色按钮未启用或难以处理。
因此,您需要在这两个按钮之间添加一个覆盖层来停止绿色按钮的点击事件。
下面的方法并不是解决这种情况的有效方法,但您可以使用它,除非您找到更好的方法。
在 UIView
中添加绿色按钮(作为这两个 View 之间的叠加),其大小与绿色按钮相同,添加绿色按钮作为该 View 的 subview ,并在以下位置添加该 View 绿色按钮。
这样,每当您禁用绿色按钮并点击它时。点击将在 UIView
上,它是绿色按钮的 super View 。
使用 View 层次结构:
关于ios - 单击其他按钮顶部的“禁用”按钮会触发另一个按钮的单击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28209234/