如何禁用 UIButton 和禁用 touchEvent 响应程序?
Posted
技术标签:
【中文标题】如何禁用 UIButton 和禁用 touchEvent 响应程序?【英文标题】:How to disable UIButton and disable touchEvent responder? 【发布时间】:2012-08-07 08:26:18 【问题描述】:我有IBOutlet UIButton
。启用时它不会响应touchesBegan:withEvent:
。但是当我设置[button setEnabled:NO]
并单击以调整它的位置时,它会转到touchesBegan:withEvent:
。
如何禁用UIButton
,以及禁用touchEvent responder
?
我试过[button setEnabled:NO]
和[button setUserInteractionEnabled:YES]
,但没有。
【问题讨论】:
userInteractionEnabled:YES ??? :O 【参考方案1】:你试过了吗?
[button setEnabled:NO];
和
[button setUserInteractionEnabled:NO]
【讨论】:
【参考方案2】:禁用 touchesBegan:withEvent 你可以使用
self.view.userInteractionEnabled = NO;
因为这个方法用于uiview(以及其他uiimage的子类)。当您单击按钮时,调用按钮处理程序(不是 touchesBegan、touchMove),按钮是 UIControl 的子类。
【讨论】:
我无法为主视图禁用 userInteraction。 你在哪个班级使用这个按钮?应用程序委托、自定义 uiview 或自定义 uiviewcontroller?尝试 self.superview.userInteractionEnabled = NO; (对于自定义 uiview - 这将是主视图)。对于应用委托,你可以试试这个:self.window.userInteractionEnabled = NO; 自定义uiviewcontroller,以及带图片的按钮【参考方案3】:如果按钮被禁用。下面的代码对你有好处。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
UITouch *touch = [touches anyObject];
if(CGRectContainsPoint(button.frame, [touch locationInView:self.view]))
return;
//do stuff
【讨论】:
以上是关于如何禁用 UIButton 和禁用 touchEvent 响应程序?的主要内容,如果未能解决你的问题,请参考以下文章