iOS里面提供了7个手势
轻拍,平移,轻扫,缩放,旋转,长按,屏幕边界
- (void)viewDidLoad {
[super viewDidLoad];
//UIImageView 默认关闭用户响应
self.rv.imageView.userInteractionEnabled = YES;
#pragma mark -- 轻拍手势
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAction:)];
[self.rv.imageView addGestureRecognizer:tap];
#pragma mark --长按手势
UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longAction:)];
longPress.minimumPressDuration = 1;
[self.rv.imageView addGestureRecognizer:longPress];
#pragma mark ---- 旋转手势
UIRotationGestureRecognizer *rotation = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotationAction:)];
[self.rv.imageView addGestureRecognizer:rotation];
#pragma mark -----捏合(缩放)
UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinchAction:)];
[self.rv.imageView addGestureRecognizer:pinch];
#pragma mark ------平移
UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panAction:)];
[self.rv.imageView addGestureRecognizer:pan];
}
//轻拍手势的响应事件
- (void)tapAction:(UITapGestureRecognizer *)sender{
self.rv.imageView.image = [UIImage imageNamed:@"2"];
}
//长按
- (void)longAction:(UILongPressGestureRecognizer *)sender{
if (sender.state == UIGestureRecognizerStateBegan) {
NSLog(@"别摸我");
}
if (sender.state == UIGestureRecognizerStateEnded) {
NSLog(@"让你别摸你就别摸啊,这么听话啊");
}
}
//旋转的响应事件
- (void)rotationAction:(UIRotationGestureRecognizer *)sender{
self.rv.imageView.transform = CGAffineTransformRotate(self.rv.imageView.transform, sender.rotation);
//重置旋转角度
sender.rotation = 0;
}
//捏合缩放响应事件
- (void)pinchAction:(UIPinchGestureRecognizer *)sender{
sender.view.transform = CGAffineTransformScale(sender.view.transform, sender.scale, sender.scale);
sender.scale = 1;
}
//平移
- (void)panAction:(UIPanGestureRecognizer *)sender{
CGPoint point = [sender translationInView:sender.view];
sender.view.transform = CGAffineTransformTranslate(sender.view.transform, point.x, point.y);
//将偏移量归零
[sender setTranslation:CGPointZero inView:sender.view];
}