iOS 手势集合


#import "ViewController.h"


@interface ViewController ()

{

    UIImageView *imageView;

    UILabel *label;

}

@end


@implementation ViewController


- (void)viewDidLoad {

    [super viewDidLoad];

    //背景图片设置

    imageView=[[UIImageView alloc]initWithFrame:[UIScreen mainScreen].bounds];

    imageView.image=[UIImage imageNamed:@"jay.jpg"];

    [self.view addSubview:imageView];

    imageView.userInteractionEnabled=YES;

    

    //将手势类型显示在Label

    label=[[UILabel alloc]initWithFrame:CGRectMake(100, self.view.frame.size.height-50, 200, 50)];

    label.backgroundColor=[UIColor grayColor];

    [imageView addSubview:label];

    label.textAlignment=NSTextAlignmentCenter;

    label.textColor=[UIColor greenColor];

    

    //1.一只手单击

    UITapGestureRecognizer *tap=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapAction:)];

    [imageView addGestureRecognizer:tap];

    

    //2.一只手双击

    UITapGestureRecognizer *tapDouble=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapDoubleAction:)];

    //点击次数

    tapDouble.numberOfTapsRequired=2;

    [imageView addGestureRecognizer:tapDouble];

    

    //解决单双击冲突 双击生效的时候让单击手势失效

    [tap requireGestureRecognizerToFail:tapDouble];

    

    //3.两只手单击

    UITapGestureRecognizer *doubleTap=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(doubleTap:)];


    doubleTap.numberOfTapsRequired=1;

    //手指个数

    doubleTap.numberOfTouchesRequired=2;

    [imageView addGestureRecognizer:doubleTap];


    //4.两只手双击

    UITapGestureRecognizer *doubleTapDouble=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(doubleTapDouble:)];

    //设置点击次数

    doubleTapDouble.numberOfTapsRequired=2;

    //手指个数

    doubleTapDouble.numberOfTouchesRequired=2;

    [imageView addGestureRecognizer:doubleTapDouble];


    [doubleTap requireGestureRecognizerToFail:doubleTapDouble];

    

    //5.向左轻扫手势

    UISwipeGestureRecognizer *swipeLeft=[[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipeLeftAction:)];

    //滑动方向

    swipeLeft.direction=UISwipeGestureRecognizerDirectionLeft;

    [imageView addGestureRecognizer:swipeLeft];

    

    //6.向右轻扫手势

    UISwipeGestureRecognizer *swipeRight=[[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipeRightAction:)];

    swipeRight.direction=UISwipeGestureRecognizerDirectionRight;

    [imageView addGestureRecognizer:swipeRight];


    //7.移动

    UIPanGestureRecognizer *pan=[[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(panAction:)];

    [imageView addGestureRecognizer:pan];

    

    //解决轻扫和移动的冲突只有轻扫生效的时候才让移动失效

    [pan requireGestureRecognizerToFail:swipeLeft];

    [pan requireGestureRecognizerToFail:swipeRight];

    

    //旋转和捏合手势不能同时响应,二选一

    //8.旋转

    UIRotationGestureRecognizer *rotate=[[UIRotationGestureRecognizer alloc]initWithTarget:self action:@selector(rotateAction:)];

    [imageView addGestureRecognizer:rotate];

    

    //9.捏合

    UIPinchGestureRecognizer *pin=[[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(pinchAction:)];

    [imageView addGestureRecognizer:pin];

    [pin requireGestureRecognizerToFail:rotate];

    

    //10.长按手势

    UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longPress:)];

    [imageView addGestureRecognizer:longPress];

}



//1.一只手单击

-(void)tapAction:(UITapGestureRecognizer *)tapGesture{

    

    label.text=@"一只手单击";

        NSLog(@"%@",label);

}


//2.一只手双击

-(void)tapDoubleAction:(UITapGestureRecognizer *)tapDoubleGesture{

 

        label.text=@"一只手双击";

        NSLog(@"%@",label);

}


//3.两只手单击

-(void)doubleTap:(UITapGestureRecognizer *)doubleTap{

    

        label.text=@"两只手单击";

    NSLog(@"两只手单击");

}


//4.两只手双击

-(void)doubleTapDouble:(UITapGestureRecognizer *)doubleTap{

    

    label.text=@"两只手双击";

    NSLog(@"两只手双击");

}


//5.向左轻扫手势

-(void)swipeLeftAction:(UITapGestureRecognizer *)left{

    

    label.text=@"向左轻扫";

    NSLog(@"%@",label);

}


//6.向右轻扫

-(void)swipeRightAction:(UITapGestureRecognizer *)left{

    

    label.text=@"向右轻扫";

    NSLog(@"%@",label);

}


//7.移动

-(void)panAction:(UIPanGestureRecognizer *)pan{

    

    label.text=@"移动";

    NSLog(@"%@",label);

}


//8.旋转

-(void)rotateAction:(UIRotationGestureRecognizer *)rotate{

    //正在旋转

    if(rotate.state==UIGestureRecognizerStateChanged){

        //取得弧度

        CGFloat radius=rotate.rotation;

        rotate.view.transform=CGAffineTransformMakeRotation(radius);

    }else if(rotate.state==UIGestureRecognizerStateEnded){

        //还原transform

        [UIView animateWithDuration:0.35 animations:^{

        rotate.view.transform=CGAffineTransformIdentity;

        }];

    }

    label.text=@"旋转";

}


//9.捏合

-(void)pinchAction:(UIPinchGestureRecognizer *)pinch{

    if(pinch.state==UIGestureRecognizerStateChanged){

        //取得缩放的比例

        CGFloat scale=pinch.scale;

        pinch.view.transform=CGAffineTransformMakeScale(scale, scale);

    }else if(pinch.state==UIGestureRecognizerStateEnded){

        [UIView animateWithDuration:0.35 animations:^{

            pinch.view.transform=CGAffineTransformIdentity;

        }];

    }

    label.text=@"捏合";

}


//10.长按手势

-(void)longPress:(UILongPressGestureRecognizer *)longPress{

    

    label.text=@"长按手势";

    NSLog(@"长按手势");

}


@end

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值