这应该很容易。创建两个手势识别器。UIPinchGestureRecognizer和UIPanGestureIdentifizer。别忘了成为两者的代表!
pinchRecognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(scaleHandler:)];
[pinchRecognizer setDelegate:self];
[pinchRecognizer setDelaysTouchesBegan:NO];
[pinchRecognizer setDelaysTouchesEnded:NO];
[pinchRecognizer setCancelsTouchesInView:NO];
panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panHandler:)];
[panRecognizer setMaximumNumberOfTouches:2];
[panRecognizer setMinimumNumberOfTouches:1];
[panRecognizer setDelegate:self];
[panRecognizer setDelaysTouchesBegan:NO];
[panRecognizer setDelaysTouchesEnded:NO];
[panRecognizer setCancelsTouchesInView:NO];
现在实现手势代理的以下方法。
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{
return YES;
}
这将使两个处理程序都被触发,这样当你释放其中一个手指时,它会平移,但当你同时拥有两个手指时它会夹住。