UIGestureRecognizer
是所有手势的父类,包含七个子类(轻拍,缩放,旋转,长按,轻扫,平移,屏幕边界平移):
轻拍: UITapGestureRecognizer
缩放: UIPinchGestureRecognizer
旋转: UIRotationGestureRecognizer
轻扫: UISwipeGestureRecognizer 能识别拖拽手势
平移: UIPanGestureRecognizer
屏幕边界平移: UIScreenEdgePanGestureRecognizer
长按: UILongPressGestureRecognizer
- (void)viewDidLoad {
[super viewDidLoad];
self.imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 375, 667)];
self.imageView.image = [UIImage imageNamed:@"star.jpg"];
self.imageView.userInteractionEnabled = YES;
[self.view addSubview:_imageView];
[_imageView release];
self.imageView.image = [UIImage imageNamed:@"star.jpg"];
self.imageView.userInteractionEnabled = YES;
[self.view addSubview:_imageView];
[_imageView release];
/*
//创建长按手势对象
UILongPressGestureRecognizer * longPress = [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longPressAction:)];
//设置最小长按时间 ,默认是1秒
longPress.minimumPressDuration = 3;
[self.imageView addGestureRecognizer:longPress];
[longPress release];
*/
//设置最小长按时间 ,默认是1秒
longPress.minimumPressDuration = 3;
[self.imageView addGestureRecognizer:longPress];
[longPress release];
*/
/*
//创建轻扫手势对象
UISwipeGestureRecognizer * swipe = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipeAction:)];
//设置轻扫方向
swipe.direction = UISwipeGestureRecognizerDirectionDown;
[self.imageView addGestureRecognizer:swipe];
[swipe release];
*/
/*
//创建平移手势对象
UIPanGestureRecognizer * pan = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(panAction:)];
[self.imageView addGestureRecognizer:pan];
[pan release];
*/
/*
//创建旋转手势对象
UIRotationGestureRecognizer * rotation = [[UIRotationGestureRecognizer alloc]initWithTarget:self action:@selector(rotationAction:)];
[self.imageView addGestureRecognizer:rotation];
[rotation release];
*/
/*
//创建缩放手势对象
// 创建UIPinchGestureRecognizer手势处理器,该手势处理器激发pinchAction:方法
UIPinchGestureRecognizer * pinch = [[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(pinchAction:)];
// 为imageView添加手势处理器
[self.imageView addGestureRecognizer:pinch];
[pinch release];
*/
//创建轻拍手势
//谁用手势谁添加手势,视图和视图之间的手势时间相互没有干涉
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapAction)];
//添加手势
[self.imageView addGestureRecognizer:tap];
swipe.direction = UISwipeGestureRecognizerDirectionDown;
[self.imageView addGestureRecognizer:swipe];
[swipe release];
*/
/*
//创建平移手势对象
UIPanGestureRecognizer * pan = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(panAction:)];
[self.imageView addGestureRecognizer:pan];
[pan release];
*/
/*
//创建旋转手势对象
UIRotationGestureRecognizer * rotation = [[UIRotationGestureRecognizer alloc]initWithTarget:self action:@selector(rotationAction:)];
[self.imageView addGestureRecognizer:rotation];
[rotation release];
*/
/*
//创建缩放手势对象
// 创建UIPinchGestureRecognizer手势处理器,该手势处理器激发pinchAction:方法
UIPinchGestureRecognizer * pinch = [[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(pinchAction:)];
// 为imageView添加手势处理器
[self.imageView addGestureRecognizer:pinch];
[pinch release];
*/
//创建轻拍手势
//谁用手势谁添加手势,视图和视图之间的手势时间相互没有干涉
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapAction)];
//添加手势
[self.imageView addGestureRecognizer:tap];
[tap release];
}
//轻拍手势方法
-(void)tapAction
{
self.imageView.image = [UIImage imageNamed:@"meinv.jpg"];
}
//轻扫手势方法
-(void)swipeAction:(UIGestureRecognizer *)sender
{
self.imageView.image = [UIImage imageNamed:@"meinv.jpg"];
}
//长按手势方法
-(void)longPressAction:(UIGestureRecognizer *)sender
{
self.imageView.image = [UIImage imageNamed:@"meinv.jpg"];
-(void)tapAction
{
self.imageView.image = [UIImage imageNamed:@"meinv.jpg"];
}
//轻扫手势方法
-(void)swipeAction:(UIGestureRecognizer *)sender
{
self.imageView.image = [UIImage imageNamed:@"meinv.jpg"];
}
//长按手势方法
-(void)longPressAction:(UIGestureRecognizer *)sender
{
self.imageView.image = [UIImage imageNamed:@"meinv.jpg"];
}
//平移手势方法-----------------
-(void)panAction:(UIGestureRecognizer *)sender
{
//确定平移手势
UIPanGestureRecognizer * pan = (UIPanGestureRecognizer *)sender;
//参数转换
CGPoint point = [pan translationInView:_imageView];
//视图本身的transform变化
_imageView.transform = CGAffineTransformTranslate(_imageView.transform, point.x, point.y);
//将视图重置
[pan setTranslation:CGPointZero inView:_imageView];
}
//旋转手势方法-----------------
-(void)rotationAction:(UIGestureRecognizer *)sender
{
//确定旋转手势
UIRotationGestureRecognizer * rota = (UIRotationGestureRecognizer *)sender;
//参数转换
_imageView.transform = CGAffineTransformRotate(_imageView.transform, rota.rotation);
//将视图重置
rota.rotation = 0;
}
//缩放手势方法-----------------
- (void)pinchAction:(UIGestureRecognizer*)sender
{
-(void)panAction:(UIGestureRecognizer *)sender
{
//确定平移手势
UIPanGestureRecognizer * pan = (UIPanGestureRecognizer *)sender;
//参数转换
CGPoint point = [pan translationInView:_imageView];
//视图本身的transform变化
_imageView.transform = CGAffineTransformTranslate(_imageView.transform, point.x, point.y);
//将视图重置
[pan setTranslation:CGPointZero inView:_imageView];
}
//旋转手势方法-----------------
-(void)rotationAction:(UIGestureRecognizer *)sender
{
//确定旋转手势
UIRotationGestureRecognizer * rota = (UIRotationGestureRecognizer *)sender;
//参数转换
_imageView.transform = CGAffineTransformRotate(_imageView.transform, rota.rotation);
//将视图重置
rota.rotation = 0;
}
//缩放手势方法-----------------
- (void)pinchAction:(UIGestureRecognizer*)sender
{
//确定捏合手势
UIPinchGestureRecognizer * pinch = (UIPinchGestureRecognizer *)sender;
//捏合和放大
[_imageView setTransform:CGAffineTransformMakeScale(pinch.scale, pinch.scale)];
//将视图缩放比重置
UIPinchGestureRecognizer * pinch = (UIPinchGestureRecognizer *)sender;
//捏合和放大
[_imageView setTransform:CGAffineTransformMakeScale(pinch.scale, pinch.scale)];
//将视图缩放比重置
//pinch.scale = 1;
}