我有一个有两个功能的UIButton :轻敲,长按。有点像Springboard应用程序(主屏幕)。我已经将它实现为一个附加了UILongPressGestureRecognizer的UIButton。
在某些情况下,我需要禁用点击操作,这是通过在按钮上设置enabled = NO来实现的。但不幸的是,这也禁用了我的手势识别器。
如何禁用UIButton的标准行为,同时保持手势识别器处于活动状态?
发布于 2012-02-08 22:12:28
UIButton是UIControl的一个子类。看看UIControl中的各种方法。
您可以为ControlEvents (如ControlEventTouchUpInside,也称为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或者,根据您的条件,您可以只在调用的target/selector方法内不执行任何操作。
发布于 2012-02-08 22:10:22
您可以保留按钮的点击目标和选择器,然后在需要时再次添加它。通过设置enabled = NO;,您可以将NO控件的接收器设置为NO。
https://stackoverflow.com/questions/9194800
复制相似问题