iOS 手势

手势类型

  • 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的位置的时候,有时需要对手势的一些变量进行复位,它们可能是根据初始点来计算的。(了解就行,到用时,具体情况具体对待)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容