iphone - 您可以禁用 UIButton 而不禁用其附加的 UIGestureRecognizers 吗?

标签 iphone ios uibutton uigesturerecognizer

我有一个具有 2 个功能的 UIButton:点击和长按。有点像 Springboard 应用程序(主屏幕)。我已将其实现为附加了 UILongPressGestureRecognizer 的 UIButton。

在某些情况下,我需要通过在按钮上设置 enabled = NO 来禁用点击操作。但不幸的是,这也禁用了我的手势识别器。

如何禁用 UIButton 的标准行为,同时保持附加的手势识别器处于事件状态?

最佳答案

UIButton 是 UIControl 的子类。 看看UIControl中的各种方法。
您可以指定调用 ControlEvents(例如 ControlEventTouchUpInside 又名点击)和 UIEvents 的特定方法。

 - (void)sendAction:(SEL)action to:(id)target forEvent:(UIEvent *)event

 - (void)sendActionsForControlEvents:(UIControlEvents)controlEvents

您可以通过以下方式删除控制事件的操作:

 - (void)removeTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents

或者,根据您的条件,您可以在调用的目标/选择器方法中仅执行无操作。

关于iphone - 您可以禁用 UIButton 而不禁用其附加的 UIGestureRecognizers 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9194800/

相关文章:

iphone - 编辑 iPhone 电话簿中的所有条目

iphone - 调用 Objective C 中的协议(protocol)方法

iphone 开发限制

iphone - 当应用程序处于后台时,UILocalNotification 未显示在通知中心

ios - 如何在 xcode 中以编程方式向按钮添加操作

iphone - 如何播放资源库中的视频文件

ios - 我的 Flutter/Firebase 应用显示尚未配置任何应用

ios - 如何在ipad上以单应用模式打开设置

iphone - Objective C IB 奥特莱斯

ios - 如何在Swift 3.0 中设置动态创建按钮的框架