【问题标题】:Touch count detect and perform function触摸计数检测和执行功能
【发布时间】:2013-03-03 17:45:44
【问题描述】:

tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self 动作:@selector(handleTapGesture:)]; tapGesture.numberOfTapsRequired = 2; tapGesture.numberOfTouchesRequired = 1;

[self.view addGestureRecognizer:tapGesture];
[tapGesture release];

和

- (void)handleTapGesture:(UITapGestureRecognizer *)sender {

     if (sender.state == UIGestureRecognizerStateRecognized) {
  // handling code
        NSLog(@"We got double tap here");
        DashBoardViewController*   dashboardObj = [[DashBoardViewController alloc] initWithNibName:@"DashBoardViewController" bundle:nil];
        [self.navigationController pushViewController:dashboardObj animated:YES];
 }

我想做的是,我想在单击和双击时调用 2 个不同的事件。 那么我怎样才能检测到 tap==1 和 tap==2 的时间呢? 在我的代码中可以识别双击,但我不确定当找到单击时如何查找和工作。

谢谢

【问题讨论】:

  • 你可以使用计时器。当您点击时启动计时器。如果计时器到期,您知道您需要单击一下。如果您在计时器到期之前再次点击,则您知道您正在处理双击。
  • 你能帮我解决这个问题吗...?

标签: iphone ios objective-c ipad uitapgesturerecognizer


【解决方案1】:

这可能会给你一个解决方案

UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];
UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleDoubleTap:)];

[doubleTap setNumberOfTapsRequired:2];
[singleTap setNumberOfTouchesRequired:1];

[self.view addGestureRecognizer:singleTap];
[self.view addGestureRecognizer:doubleTap];

- (void)handleSingleTap:(UIGestureRecognizer *)gestureRecognizer {
// single tap action
}

- (void)handleDoubleTap:(UIGestureRecognizer *)gestureRecognizer {
   // double tap action
}

或者你必须使用 NSTimer 来验证单点触摸。

在方法中,

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event

【讨论】:

  • 谢谢纳兹克。上面代码的问题是,在检测到双击时,它首先调用单击函数而不是双击函数。
【解决方案2】:

以下似乎是一篇关于 iOS 触摸的好帖子。

http://www.sitepen.com/blog/2008/07/10/touching-and-gesturing-on-the-iphone/

【讨论】:

  • Yasir,我正在寻找 iOS :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多