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;