单击其他按钮顶部的“禁用”按钮会触发另一个按钮的单击事件

时间:2015-01-29 07:33:47

标签: ios objective-c cocoa-touch uibutton

启用按钮顶部有一个禁用按钮:

Disabled button

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

我试过了:

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

但我仍然有同样的行为

在这种情况下,有没有办法阻止蓝色按钮点击事件?

修改

修正了并没有真正禁用按钮,而是将其目标更改为nil:

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

1 个答案:

答案 0 :(得分:3)

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

因此,在这两个按钮之间需要一个叠加来停止点击绿色按钮事件。

以下方法无法有效解决这种情况,但除非你能找到更好的方法,否则你可以使用它。

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

这样,每当您禁用绿色按钮并点按它时。点击将显示在UIView上,这是绿色按钮的超级视图。

使用视图层次结构:

enter image description here