zoukankan      html  css  js  c++  java
  • 使用iOS手势UIGestureRecognizer

    UIKit中包含了UIGestureRecognizer类,用于检测发生在设备中的手势。UIGestureRecognizer是一个抽象类,定义了所有手势的基本行为,它有下面一些子类用于处理具体的手势:

        1、拍击UITapGestureRecognizer (任意次数的拍击)

        2、向里或向外捏UIPinchGestureRecognizer (用于缩放)

        3、摇动或者拖拽UIPanGestureRecognizer

        4、擦碰UISwipeGestureRecognizer (以任意方向)

        5、旋转UIRotationGestureRecognizer (手指朝相反方向移动)

        6、长按UILongPressGestureRecognizer

    对 于不同类型的手势识别器,具有不同的配置属性。比如UITapGestureRecognizer,可以配置拍击次数。界面接收到手势之后,可以发送一个 消息,用于处理响应手势动作后的任务。当然,不同的手势识别器,发送的消息方法也会有所不同。下面列举几个具体示例代码:

    1、一个手指,拍击两次手势

    // 创建一个手势识别器
    UITapGestureRecognizer *oneFingerTwoTaps = 
      [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(oneFingerTwoTaps)] autorelease];
     
    // Set required taps and number of touches
    [oneFingerTwoTaps setNumberOfTapsRequired:2];
    [oneFingerTwoTaps setNumberOfTouchesRequired:1];
     
    // Add the gesture to the view
    [[self view] addGestureRecognizer:oneFingerTwoTaps];

    消息方法oneFingerTwoTaps
    - (void)oneFingerTwoTaps
    {
      NSLog(@"Action: One finger, two taps");
    }


    2、两个手指,拍击两次手势
    UITapGestureRecognizer *twoFingersTwoTaps = 
      [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(twoFingersTwoTaps)] autorelease];
    [twoFingersTwoTaps setNumberOfTapsRequired:2];
    [twoFingersTwoTaps setNumberOfTouchesRequired:2];
    [[self view] addGestureRecognizer:twoFingersTwoTaps];

    消息方法twoFingersTwoTaps
    - (void)twoFingersTwoTaps {
      NSLog(@"Action: Two fingers, two taps");


    3、一个手指向上、向下擦碰手势
    // 向上擦碰
    UISwipeGestureRecognizer *oneFingerSwipeUp = 
      [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(oneFingerSwipeUp:)] autorelease];
    [oneFingerSwipeUp setDirection:UISwipeGestureRecognizerDirectionUp];
    [[self view] addGestureRecognizer:oneFingerSwipeUp];

    - (void)oneFingerSwipeUp:(UISwipeGestureRecognizer *)recognizer 

      CGPoint point = [recognizer locationInView:[self view]];
      NSLog(@"Swipe up - start location: %f,%f", point.x, point.y);
    }

    // 向下擦碰
    UISwipeGestureRecognizer *oneFingerSwipeDown = 
      [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(oneFingerSwipeDown:)] autorelease];
    [oneFingerSwipeDown setDirection:UISwipeGestureRecognizerDirectionDown];
    [[self view] addGestureRecognizer:oneFingerSwipeDown];

    - (void)oneFingerSwipeDown:(UISwipeGestureRecognizer *)recognizer 

      CGPoint point = [recognizer locationInView:[self view]];
      NSLog(@"Swipe down - start location: %f,%f", point.x, point.y);
    }

    4、旋转手势
    UIRotationGestureRecognizer *twoFingersRotate = 
      [[[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(twoFingersRotate:)] autorelease];
    [[self view] addGestureRecognizer:twoFingersRotate];

    - (void)twoFingersRotate:(UIRotationGestureRecognizer *)recognizer 
    {
      // Convert the radian value to show the degree of rotation
      NSLog(@"Rotation in degrees since last change: %f", [recognizer rotation] * (180 / M_PI));
    }

    5、向里或向外捏的手势
    UIPinchGestureRecognizer *twoFingerPinch = 
      [[[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(twoFingerPinch:)] autorelease];
    [[self view] addGestureRecognizer:twoFingerPinch];

    - (void)twoFingerPinch:(UIPinchGestureRecognizer *)recognizer 
    {
      NSLog(@"Pinch scale: %f", recognizer.scale);
    }
  • 相关阅读:
    html 上传图片前预览
    php获取当月天数及当月第一天及最后一天、上月第一天及最后一天实现方法
    php 计算 pdf文件页数
    php 获取半年内每个月的订单数量, 总价, 月份
    php 获取两个数组之间不同的值
    小程序支付功能
    关于nginx的Job for nginx.service failed because the control process exited with error code.错误
    linux 安装 Apollo
    MongoDB待续。。。
    ABP vNext...待续
  • 原文地址:https://www.cnblogs.com/suncoolcat/p/3397803.html
Copyright © 2011-2022 走看看