1 点击手势
UITapGestureRecognizer *tapGR = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAction:)];
//设置轻按响应次数
tapGR.numberOfTapsRequired = 2;
//设置手指响应指数
tapGR.numberOfTouchesRequired = 2 ;
/*
这样设置是指需要两根手指轻按两次才会响应事件
*/
[self.TKImgView addGestureRecognizer:tapGR];
2 捏合手势
UIPinchGestureRecognizer *pinchGR = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinchAction:)];
[pinchGR setDelegate:self];
[self.TKImgView addGestureRecognizer:pinchGR];
-(void)pinchAction:(UIPinchGestureRecognizer *)sender{
//获取缩放值
float scale = sender.scale;
NSLog(@"缩放值:%.3lf",scale) ;
//获取缩放的view
UIView * imgView = sender.view ;
//进行缩放
imgView.transform = CGAffineTransformScale(imgView.transform, scale, scale);
//每次捏合动作完毕之后,让此捏合值复原,使得它每次都是从100%开始缩放
sender.scale = 1;
3 旋转手势
UIRotationGestureRecognizer* RotationGR = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotationAction:)];
RotationGR.delegate = self;
[self.TKImgView addGestureRecognizer:RotationGR];
-(void)rotationAction:(UIRotationGestureRecognizer *)sender{
//通过手势的到旋转角度
float rota = sender.rotation;
NSLog(@"旋转角度:%.3lf",rota) ;
//得到该手势作用的视图
UIView * imgView = sender.view ;
//通过2D仿射变换函数中的旋转函数来使得当前视图旋转。
imgView.transform = CGAffineTransformRotate(imgView.transform, rota);
//复原
sender.rotation = 0;
}
4 拖拽手势
UIPanGestureRecognizer *panGP = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panAction:)];
[self.TKImgView addGestureRecognizer:panGP];
#pragma mark--事件
- (void)panAction:(UIPanGestureRecognizer*)sender{
//得到当前手势所在视图
UIView * imgView = sender.view ;
//得到视图上移动的偏移量
CGPoint Point = [sender translationInView:imgView.superview];
NSLog(@"移动值:%.3lf--%.3lf",Point.x,Point.y) ;
//通过2D仿射变换函数中与位移有关的函数实现视图位置变化
imgView.transform = CGAffineTransformTranslate(imgView.transform, Point.x, Point.y);
//复原
[sender setTranslation:CGPointZero inView:imgView.superview];
}
5 长按手势
UILongPressGestureRecognizer *longPressPR = [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longPressAction:)];
//长按最短时间才能有效
longPressPR.minimumPressDuration = 1;
[self.TKImgView addGestureRecognizer:longPressPR];
-(void)longPressAction:(UILongPressGestureRecognizer *)sender{
if (sender.state == UIGestureRecognizerStateEnded) {
NSLog(@"长按结束执行这里");
}else if (sender.state == UIGestureRecognizerStateChanged){
NSLog(@"长按到达最短时间就会执行一次这里");
}
}
6 左右横扫手势
UISwipeGestureRecognizer *swipeGR = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipeAction:)];
[self.TKImgView addGestureRecognizer:swipeGR];