- // 单击的 Recognizer
- UITapGestureRecognizer* singleRecognizer;
- singleRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:selfaction:@selector(SingleTap:)];
- //点击的次数
- singleTapRecognizer.numberOfTapsRequired = 1; // 单击
- //给self.view添加一个手势监测;
- [self.view addGestureRecognizer:singleRecognizer];
- // 双击的 Recognizer
- UITapGestureRecognizer* doubleRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:selfaction:@selector(DoubleTap:)];
- doubleRecognizer.numberOfTapsRequired = 2; // 双击
- //关键语句,给self.view添加一个手势监测;
- [self.view addGestureRecognizer:doubleRecognizer];
- // 关键在这一行,双击手势确定监测失败才会触发单击手势的相应操作
- [singleRecognizer requireGestureRecognizerToFail:doubleRecognizer];
- [singleRecognizer release];
- [doubleRecognizer release];
- }
- -(void)SingleTap:(UITapGestureRecognizer*)recognizer
- {
- //处理单击操作
- }
- -(void)DoubleTap:(UITapGestureRecognizer*)recognizer
- {
- //处理双击操作
- }
UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(handlePinch:)];
/*识别放大缩小 */
- (void)handlePinch:(UIPinchGestureRecognizer *)gestureRecognizer {
CGPoint location = [gestureRecognizer locationInView:self.view];
[self drawImageForGestureRecognizer:gestureRecognizer atPoint:location underAdditionalSituation:nil];
gestureRecognizer.view.transform = CGAffineTransformScale(gestureRecognizer.view.transform, gestureRecognizer.scale, gestureRecognizer.scale);
//缩放中心点是view的中心点
//self.view.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0.5f, 0.5f);
gestureRecognizer.scale = 1;
}
UIRotationGestureRecognizer *rotation = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(handleRotation:)];
- (void)handleRotation:(UIRotationGestureRecognizer *)gestureRecognizer {
CGPoint location = [gestureRecognizer locationInView:self.view];
CGAffineTransform transform = CGAffineTransformMakeRotation([gestureRecognizer rotation]);
self.imageView.transform = transform;
[self drawImageForGestureRecognizer:gestureRecognizer atPoint:location underAdditionalSituation:nil];
if (([gestureRecognizer state] == UIGestureRecognizerStateEnded) || ([gestureRecognizer state] == UIGestureRecognizerStateCancelled)) {
[UIView animateWithDuration:0.5 animations:^{
self.imageView.alpha = 0.0;
self.imageView.transform = CGAffineTransformIdentity;
}
}
最简单的处理过程是这样:
- UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)];
- [self.imgView setUserInteractionEnabled:YES];
- [self.imgView addGestureRecognizer:pan];
- [pan release];
handlePan
CGFloat x = recognizer.view.center.x + translatedPoint.x;
CGFloat y = recognizer.view.center.y + translatedPoint.y;
recognizer.view.center = CGPointMake(x, y);
[recognizer setTranslation:CGPointMake(0, 0) inView:self.view];
//长按
UILongPressGestureRecognizer *pLongPress = [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longPress:)];
//设置长按多少秒后才识别这个手势
pLongPress.minimumPressDuration = 2;
[self.view addGestureRecognizer:pLongPress];