禁用UiNavigationBar上的多个触摸

时间:2014-02-24 08:01:28

标签: ios iphone objective-c uinavigationbar

我在导航栏上有左右导航栏按钮,两者都可以同时点按,并且他们的动作被触发,我该如何防止多次触摸。我在这里和谷歌搜索过,但没有成功

3 个答案:

答案 0 :(得分:1)

您还可以在每个按钮上使用-setExclusiveTouch,以便一次只能注册一个按钮。您无需在视图上禁用多点触控。

答案 1 :(得分:1)

非常简单,你可以在这种情况下使用ExclusiveTouch属性

  

[self.navigationController.navigationBar setExclusiveTouch:YES];

这是一个布尔值,指示接收器是否专门处理触摸事件。

将此属性设置为YES会导致接收方阻止将触摸事件传递到同一窗口中的其他视图。此属性的默认值为NO。

答案 2 :(得分:0)

exclusiveTouch有一个名为UIButton的属性。使用如下所示创建导航按钮:

例如:

UIButton *btnAdd = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 38, 37)];
[btnAdd setContentMode:UIViewContentModeScaleAspectFit];
[btnAdd setBackgroundImage:[UIImage imageNamed:@"abc.png"] forState:UIControlStateNormal];
[btnAdd addTarget:selfaction:@selector(<method>) forControlEvents:UIControlEventTouchUpInside];
[btnAdd setExclusiveTouch:YES];
UIBarButtonItem *rightBtn = [[UIBarButtonItem alloc] initWithCustomView:btnAdd];
self.navigationItem.rightBarButtonItem = rightBtn;