分享

iOS开发UI中轻拍 长按 旋转手势识别器方法

 vv幻听vv 2015-11-13
一、监听触摸事件的做法   如果想监听一个view上面的触摸事件,之前的做法通常是:先自定义一个view,然后再实现view的touches方法,在方法内部实现具体处理代码 通过touches方法监听view触摸事件,有很明显的几个缺点 (1)必须得自定义view (2)由于是在view内部的touches方法中监听触摸事件,因此默认情况下,无法让其他外界对象监听view的触摸事件(需要通过代理) (3)不容易区分用户的具体手势行为 iOS 3.2之后,苹果推出了手势识别功能(Gesture Recognizer),在触摸事件处理方面,大大简化了开发者的开发难度 二、手势识别器 为了完成手势识别,必须借助于手势识别器----UIGestureRecognizer 利用UIGestureRecognizer,能轻松识别用户在某个view上面做的一些常见手势 UIGestureRecognizer是一个抽象类,定义了所有手势的基本行为,使用它的子类才能处理具体的手势  UITapGestureRecognizer(轻拍) UIPinchGestureRecognizer(捏合,用于缩放) UIPanGestureRecognizer(拖拽) UISwipeGestureRecognizer(轻扫) UIRotationGestureRecognizer(旋转) UILongPressGestureRecognizer(长按) UIScreenEdgePanGestureRecognizer(屏幕边缘轻扫)

代码说明:手势的常用状态如下

开始:UIGestureRecognizerStateBegan

改变:UIGestureRecognizerStateChanged

结束:UIGestureRecognizerStateEnded

取消:UIGestureRecognizerStateCancelled

失败:UIGestureRecognizerStateFailed

  (一)、轻拍手势   每一个手势识别器的用法都差不多,比如UITapGestureRecognizer的使用步骤如下: (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:)]; 属性介绍: numberOfTouchesRequired   //需要多少根手指一起轻拍(默认为1根) numberOfTapsRequired    //需要轻拍多少下(默认为1) \     实现方法   \     (二)、长按手势   \     实现方法     qqOsxOO/ydLUvavQ/deqytbKxsq2sfDG97XEcm90YXRpb27K9NDUtKu13bj4Q0dBZmZpbmVUcmFuc2Zvcm1NYWtlUm90YXRpb263vbeoo6zS1NbG1/fSu7j2t8LJ5Neqs6E8L3A+Cgo8cD48aW1nIHNyYz0="http://www./uploadfile/files/2015/0426/2015042620514546.png" alt="\" />

实现方法

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多