如果UIButton
已禁用[myButton setEnabled:NO];
,是否可以使用仍然有效的触控侦听器?
我试过了:
[self addTarget:self action:@selector(myButtonTUI:) forControlEvents:UIControlStateDisabled];
但无济于事。
答案 0 :(得分:4)
您的问题的答案是否
enabled
A Boolean value that determines whether the receiver is enabled.
@property(nonatomic, getter=isEnabled) BOOL enabled
Discussion
Specify YES to make the control enabled; otherwise, specify NO to make it disabled.
The default value is YES. If the enabled state is NO, the control ignores touch
events and subclasses may draw differently.
你能模拟这样的功能吗?是。
不要禁用该按钮,而是检查是否应该在按钮操作选择器上触发该功能。您甚至可以更改图像以使其看起来禁用。这样,按钮仍然会接收触摸事件,如果满足正确的条件,您可以触发所需的功能。
答案 1 :(得分:2)
这可以通过将UIButton
包裹在相同大小的UIView
中并将点击手势识别器附加到父视图来实现:
UITapGestureRecognizer* gesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(myButtonHit)];
[self.myButtonView addGestureRecognizer:gesture];
由于某种原因,将手势识别器附加到UIButton
本身似乎不起作用,这本来是最好的解决方案。