iOS 手势

作者: Ljson | 来源:发表于2015-07-11 21:14 被阅读657次

    手势类型

    • UITapGestureRecognizer(敲击)

    • UIPinchGestureRecognizer(捏合,用于缩放)

    • UIPanGestureRecognizer(拖拽)

    • UISwipeGestureRecognizer(轻扫)

    • UIRotationGestureRecognizer(旋转)

    • UILongPressGestureRecognizer(长按)

    监听手势的方式

    1. 创建手势:UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] init];

    2. 设置手势相应的属性:

      // 连续敲击2次
      tap.numberOfTapsRequired = 2;
      // 需要2根手指一起敲击
      tap.numberOfTouchesRequired = 2;
      
    3. 将手势添加到view上:[self.iconView addGestureRecognizer:tap];

    4. 监听手势的触发:[tap addTarget:self action:@selector(tapIconView:)]

    手势的状态:

    // 没有触摸事件发生,所有手势识别的默认状态
    UIGestureRecognizerStatePossible,
    // 一个手势已经开始但尚未改变或者完成时
    UIGestureRecognizerStateBegan,
    // 手势状态改变
    UIGestureRecognizerStateChanged,
    // 手势完成
    UIGestureRecognizerStateEnded,
    // 手势取消,恢复至Possible状态
    UIGestureRecognizerStateCancelled, 
    // 手势失败,恢复至Possible状态
    UIGestureRecognizerStateFailed,
    // 识别到手势识别
    UIGestureRecognizerStateRecognized = UIGestureRecognizerStateEnded
    

    手势的代理 < UIGestureRecognizerDelegate >

    • 当想给一个view同时添加几个手势的时候,在手势的这个代理方法返回yes,表示允许同时识别多个手势
      - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer;

    触发手势后的动作

    • 要想根据手势的内容,做出相应的动作,就把手势传过来
    • 要想根据手势的偏移量设置view的位置的时候,有时需要对手势的一些变量进行复位,它们可能是根据初始点来计算的。(了解就行,到用时,具体情况具体对待)

    相关文章

      网友评论

        本文标题:iOS 手势

        本文链接:https://www.haomeiwen.com/subject/tiduqttx.html