2011-12-06 23 views
5

2手势识别:潘和2个手指捏同时iOS版-at同一时间

UIPinchGestureRecognizer *twoFingerPinch = 
[[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(handlePinch:)]; 
[croppper addGestureRecognizer:twoFingerPinch]; 

UIPanGestureRecognizer *PanRecognizer = [[[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)] autorelease]; 
[croppper addGestureRecognizer:PanRecognizer]; 

和:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {   
    return YES; 
} 

但是捏和泛在同一时间是不工作...经常我可以捏,因为泛识别器已打开。

问候

回答

10

它看起来并不像你设定的委托对每个手势识别。 gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:是委托方法,因此如果手势识别器没有委托,则不会调用此方法。

因此,默认返回值将为NO,因此手势将不会被同时识别。

+2

+1正确的答案。换句话说,将以下两行添加到代码中:'twoFingerPinch.delegate = self;'和'PanRecognizer.delegate = self;'。还要考虑重命名第二个gestureRecognizer以使用小写字母。 – Till

+0

你的权利!谢谢! (twoFingerPinch.delegate = self;) 我 – Phil

+3

愚蠢的网页缓存 - 现在我的答案看起来荒谬:( – deanWombourne

0

您是否将自己设置为识别代表?

[twoFingerPinch setDelgate:self]; 
... 
[PanRecognizer setDelegate:self]; 

PS我也会尝试为您的变量获得更一致的命名方案!