iOS 各种手势集合

 ios目前支持6中手势识别。

  1. UITapGestureRecognizer  : 点击手势
  2. UIPinchGestureRecognizer  : 捏合手势
  3. UIPanGestureRecognizer  :  拖动手势
  4. UISwipeGestureRecognizer  : 滑动手势
  5. UIRotationGestureRecognizer  : 旋转手势
  6. UILongPressGestureRecognizer  : 长按手势
具体代码执行:
  •  点击手势   

UITapGestureRecognizer* recognizer;

    recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapFrom)];

    recognizer.numberOfTapsRequired = 1; // 点击次数

    recognizer.numberOfTouchesRequired = 1;//手指个数

    [self.view addGestureRecognizer:recognizer];

- (void)handleTapFrom:(UITapGestureRecognizer *)recognizer

{

recognizer.view.tag//添加手势的视图的tag值

//处理点击事件

}

    • 捏合手势

 //自己设置 imageviewimage

    UIImageView *imageview;

    UIImage *srcImage ;

 //设置imageview允许用户交互,支持多点触碰

    imageview.userInteractionEnabled = YES;

    imageview.multipleTouchEnabled = YES;

    UIPinchGestureRecognizer* recognizer;

    recognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(handlepinFrom:)];

    [imageview addGestureRecognizer:recognizer];

- (void)handlepinFrom:(UIPinchGestureRecognizer *)gesture

{

    CGFloat currentScale;

    CGFloat scale = gesture.scale;

    // 如果捏合手势刚刚开始

    if (gesture.state == UIGestureRecognizerStateBegan)

    {

        // 计算当前缩放比

        currentScale = imageview.image.size.width / srcImage.size.width;

    }

    // 根据手势处理器的缩放比例计算图片缩放后的目标大小

    CGSize targetSize = CGSizeMake(srcImage.size.width * scale * currentScale,

    srcImage.size.height * scale * currentScale);

    // 对图片进行缩放

    imageview.image = [srcImage imageByScalingToSize:targetSize];

}

  •  拖动手势
           

//自己设置 imageview

   UIImageView *imageview;

 //设置imageview允许用户交互,支持多点触碰

    imageview.userInteractionEnabled = YES;

    imageview.multipleTouchEnabled = YES;

    UIPanGestureRecognizer* recognizer;

    recognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlepinFrom:)];

    //最小手指数

    recognizer.minimumNumberOfTouches = 1;

    //最大手指数

    recognizer.maximumNumberOfTouches = 1;

    [imageview addGestureRecognizer:recognizer];

- (void)handlepinFrom:(UIPanGestureRecognizer *)gesture

{

 //处理坐标

}

  •  滑动手势
  

//单独手势一个一个的添加

    UISwipeGestureRecognizer *recognizer;


       recognizer = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(handleSwipeFrom:)];

     [recognizer setDirection:(UISwipeGestureRecognizerDirectionRight)];

    [self.view addGestureRecognizer:recognizer];


    recognizer = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(handleSwipeFrom:)];

    [recognizer setDirection:(UISwipeGestureRecognizerDirectionLeft)];

    [self.view addGestureRecognizer:recognizer];


    recognizer = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(handleSwipeFrom:)];

    [recognizer setDirection:(UISwipeGestureRecognizerDirectionUp)];

    [self.view addGestureRecognizer:recognizer];

    

      recognizer = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(handleSwipeFrom:)];

    [recognizer setDirection:(UISwipeGestureRecognizerDirectionDown)];

    [[self.view addGestureRecognizer:recognizer];

   

 -(void)handleSwipeFrom:(UISwipeGestureRecognizer *)recognizer{

                 if(recognizer.direction==UISwipeGestureRecognizerDirectionDown) {

                         NSLog(@"swipe down");

             //执行程序

         }

         if(recognizer.direction==UISwipeGestureRecognizerDirectionUp) {

                         NSLog(@"swipe up");

             //执行程序

         }

         

         if(recognizer.direction==UISwipeGestureRecognizerDirectionLeft) {

                         NSLog(@"swipe left");

             //执行程序

         }

         

         if(recognizer.direction==UISwipeGestureRecognizerDirectionRight) {

                         NSLog(@"swipe right");

             //执行程序

         }

        }

  • 旋转手势

 UIImageView *imageview;

 UIRotationGestureRecognizer *rotationGestureRecognizer = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotateView:)];

 [imageview addGestureRecognizer:rotationGestureRecognizer];


- (void) rotateView:(UIRotationGestureRecognizer *)rotationGestureRecognizer

{

    UIView *view = rotationGestureRecognizer.view;

    if (rotationGestureRecognizer.state == UIGestureRecognizerStateBegan || rotationGestureRecognizer.state == UIGestureRecognizerStateChanged) {

        view.transform = CGAffineTransformRotate(view.transform, rotationGestureRecognizer.rotation);

        [rotationGestureRecognizer setRotation:0];

    }

}

  • 长按手势

UIImageView *imageview;

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

    longPressGr.minimumPressDuration = 1.0;//最短时间

    [imageview addGestureRecognizer:longPressGr];

- (void) longPressToDo:(UILongPressGestureRecognizer *)gnizer

{

   //处理长按事件

}



  















 




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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值