单击其他按钮顶部的禁用按钮会触发其他按钮的单击事件
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
,这是绿色按钮的父视图。
使用视图层次结构:
我在启用按钮之上有一个禁用按钮:
绿色按钮被禁用。当我点击它时,它会触发点击后面的蓝色按钮。
我试过了:
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
,这是绿色按钮的父视图。
使用视图层次结构: