我有一个带有2个功能的UIButton:点按,然后长按。有点像Springboard应用程序(主屏幕)。我已经将它实现为UIButton并附带了UILongPressGestureRecognizer。
在某些情况下,我需要通过在我的按钮上设置enabled = NO
来禁用点击操作。但不幸的是,这也禁用了我的手势识别器。
如何在保持手势识别器与其连接的同时禁用UIButton的标准行为?
答案 0 :(得分:1)
您可以删除按钮点按目标和选择器,然后在需要时再次添加。通过设置enabled = NO;
,您将控件接收器设置为NO。
更多文档 UIButton - Enabled
答案 1 :(得分:1)
UIButton是UIControl的子类。 看看UIControl中的各种方法 您可以指定调用ControlEvents的特定方法(例如ControlEventTouchUpInside a.k.a tap)和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
或者,根据您的条件,您可以在调用的目标/选择器方法中进行无操作。