iOS 各种手势集合

原创 2015年07月06日 16:20:32

 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

{

   //处理长按事件

}



  















 




版权声明:本文为博主原创文章,未经博主允许不得转载。

UIWebView下各种手势识别器的协作处理方案

前置阅读: 1. iOS私有API(二) UIGestureRecognizerDelegate的两个函数 2. iOS私有API(三) UIWebView下的手势识别器gestureRecogn...
  • hursing
  • hursing
  • 2013年03月18日 20:30
  • 5654

ios 七种手势详解

//ios 七种手势简单总结 {     //创建imageView     UIImage *image = [UIImage imageNamed:@"01.jpeg"];     U...
  • liubaoheng
  • liubaoheng
  • 2017年02月17日 09:19
  • 1434

iOS 各种手势用法

原文标题是,IOS UIScrollview UIImageView点击事件处理 原文出自:http://blog.sina.com.cn/s/blog_bd98ffe20101bz7z.html ...
  • H_O_W_E
  • H_O_W_E
  • 2013年10月29日 09:35
  • 1044

iOS各种手势

UIGestureRecognizer是一个定义基本手势的抽象类,具体什么手势,在以下子类中包含:     1、拍击UITapGestureRecognizer (任意次数的拍击)      ...
  • junlaiyan
  • junlaiyan
  • 2014年12月25日 10:47
  • 357

iOS 各种手势

UITapGestureRecongnizer 检测view上的单击操作 UIPinchGestureRecongnizer 检测view上两个手指的缩放操作 UIRotationGesture...
  • qcx321
  • qcx321
  • 2017年01月11日 11:33
  • 533

【iOS开发-手势】iOS中各种手势总结

iOS中支持的手势事件 UITapGestureRecognizer(敲击) UIPinchGestureRecognizer(捏合,用于缩放) UIPanGestureRecognizer(拖拽)...
  • ttf1993
  • ttf1993
  • 2015年05月19日 17:27
  • 1177

iOS手势集合

首先新建一个基于Sigle view Application的项目,名为GestureTest;我的项目结构如下: 往viewController.xib文件里拖动一个imageView,并...
  • ITMan_iOS
  • ITMan_iOS
  • 2015年03月20日 17:13
  • 241

iOS 手势集合

iOS常用手势:一只手单击、一只手双击、两只手单击、两只手双击、向左轻扫、向右轻扫、移动、旋转、捏合、长按等手势。...
  • qq_27990599
  • qq_27990599
  • 2015年12月30日 17:44
  • 99

ios添加的手势传值

手shi接收的参数就是你的手势对象。
  • u014746881
  • u014746881
  • 2014年04月16日 14:46
  • 2958

iOS 拖动手势

iOS 手势中还包含了一种--拖动 上节我们简单介绍了旋转手势:http://blog.csdn.net/lwjok2007/article/details/50835884 这节 我们简单介绍一...
  • lwjok2007
  • lwjok2007
  • 2016年03月09日 17:16
  • 3154
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS 各种手势集合
举报原因:
原因补充:

(最多只允许输入30个字)