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