单击其他按钮顶部的禁用按钮会触发其他按钮的单击事件

Click on Disabled button on top of other button triggers the other button's click event

我在启用按钮之上有一个禁用按钮:

绿色按钮被禁用。当我点击它时,它会触发点击后面的蓝色按钮。

我试过了:

self.testButton.enabled = YES;
self.testButton.userInteractionEnabled = NO;

但我仍然有同样的行为

请问有什么办法可以避免这种情况下蓝色按钮的点击事件吗?

编辑:

通过不真正禁用按钮而是将其目标更改为 nil 来修复:

        [myButton addTarget:nil action:nil forControlEvents:UIControlEventTouchUpInside];
        [myButton setImage:[UIImage imageNamed:@"disabledImage.png"] forState:UIControlStateNormal];

是的,蓝色按钮将始终执行操作,因为绿色按钮未启用或难以处理。

所以,这里你需要在这两个按钮之间叠加一层来停止绿色按钮的点击事件。

尽管以下方法不是解决这种情况的有效方法,但您可以使用它,除非您找到更好的方法。

UIView 中添加绿色按钮(作为这两个视图之间的叠加层),大小与绿色按钮相同,添加绿色按钮作为此视图的子视图,并将此视图添加到绿色位置按钮。

因此,每当您禁用绿色按钮并点击它时。点击 UIView,这是绿色按钮的父视图。

使用视图层次结构: