ios开发中,默认是在同一时间只能有一个手势被执行,要实现多个手势同时进行,须实现UIGestureRecognizerDelegate,并重写函数
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
以Pinch和Rotation手势为例,首先是添加手势:
UIGestureRecognizer *recognizer;
recognizer = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(handleRotationFrom:)];
recognizer.cancelsTouchesInView = NO;
recognizer.delegate = self;
[self.view addGestureRecognizer:recognizer];
[recognizer release];
UIGestureRecognizer *recognizer2;
recognizer2 = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(handlePinch:)];
recognizer2.cancelsTouchesInView = NO;
recognizer2.delegate = self;
[self.view addGestureRecognizer:recognizer2];
[recognizer2 release];
接着重写上面提到的函数,只需返回YES即可。
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
return YES;
}