2010-10-11 60 views
1

如何检测UIScrollview中的双击?检测双击UIScrollView

我想:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ 
    UITouch *touch = [touches anyObject]; 

    if (touch.tapCount == 2) { 
     // some operations here 
    } 
} 

但这不是检测UIScrollView中双击,有没有其他的方法来检测双击?

问候

+0

只是在发布时格式化一点。如果您将代码复制并粘贴到您的问题中并突出显示所有内容,然后单击输入框上方的011010按钮,则会正确格式化它。 – 2010-10-11 10:12:46

回答

6

使用下面的代码进行双击。

-(void) viewDidLoad{ 
    // other necessary operations 
    UITapGestureRecognizer* dTap = [[UITapGestureRecognizer alloc] initWithTarget : self action : @selector (doubleTap:)]; 

    [doubleTap setDelaysTouchesBegan : YES]; 
    dTap.numberOfTapsRequired = 2; 
    dTap.numberOfTouchesRequired = 1; 
    [self.view addGestureRecognizer : dTap]; 
    [dTap release]; 
} 

- (void) doubleTap : (UIGestureRecognizer*) sender 
{ 
    NSLog (@"Double tap Do operations here..."); 
} 
+0

一切都好,但选择器名称应该doubleTap我猜... – 2012-11-06 19:37:32

+0

是的,你是对的。这是错误的。谢谢你的纠正。 – krunal 2012-12-15 06:38:16

2
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 
    NSUInteger numTaps = [[touches anyObject] tapCount]; 
    if (numTaps== 2) { 
     //some operations here 
    } 
} 

使用此代码

+0

感谢Gyani回复,但scrollview没有检测到任何触摸事件....有没有其他方式来检测滚动视图中的双标签? – iscavengers 2010-10-11 10:25:05

+0

你可以从http://iphonedevelopertips.com/user-interface/detect-single-tap-in-uiscrollview.html – Gyani 2010-10-11 10:35:34

17

如果你的目标3.2+,你可以尝试使用UITapGestureRecognizer

UITapGestureRecognizer* tap = [[UITapGestureRecognizer alloc] initWithTarget:yourViewController action:@selector(tapGesture:)]; 
tap.numberOfTapsRequired = 2; 
tap.numberOfTouchesRequired = 1; 
[scrollView addGestureRecognizer:tap]; 
[tap release]; 

然后你处理您的ViewController水龙头:

- (void)tapGesture:(UIGestureRecognizer*)gesture { 
    // Do something 
} 
+0

得到一些帮助谢谢aegzorz,将尝试你的代码段... – iscavengers 2010-10-12 10:51:18