---恢复内容开始---

1.继承链:NSObject

2.UIGestureRecognizer的子类有以下:

3.想要使用手势一系列的行为需要遵守 UIGestureRecognizerDelegate协议

4.初始化手势识别器

    (1)- (instancetype)initWithTarget:(id)target
                        action:(SEL)action  :为一个对象初始化和分配空间,并设定手势的行为

5.添加和移除target和行为

    (1)- (void)addTarget:(id)target
           action:(SEL)action  :为手势识别器对象添加一个target,并设定指定的行为

    (2)- (void)removeTarget:(id)target
              action:(SEL)action  :从手势识别器中移除指定的target和指定的action

6.获取手势的touches和位置

    (1)- (CGPoint)locationInView:(UIView *)view  :返回指定视图被触摸的位置

    (2)- (CGPoint)locationOfTouch:(NSUInteger)touchIndex
                    inView:(UIView *)view  :触摸点相对于指定视图的位置

    (3)- (NSUInteger)numberOfTouches  :触摸点的数量

7.获取手势的状态和视图

    (1)@property(nonatomic, readonly) UIGestureRecognizerStatestate  :获取手势的状态

    (2)@property(nonatomic, readonly) UIView*view  :获取接受手势的视图

    (3)@property(nonatomic, getter=isEnabled) BOOL enabled  :手势是否可用

8.取消和延迟触摸

    (1)@property(nonatomic) BOOL cancelsTouchesInView  :取消视图的触摸

    (2)@property(nonatomic) BOOL delaysTouchesBegan  :延迟触摸的开始

    (3)@property(nonatomic) BOOL delaysTouchesEnded  :延迟触摸的结束

9.指定两个手势识别器的依赖

    (1)- (void)requireGestureRecognizerToFail:(UIGestureRecognizer *)otherGestureRecognizer  :只有当别的识别器触发失败的时候才使用该识别

10.设定委托

    (1)@property(nonatomic, weak) id< UIGestureRecognizerDelegate> delegate  :设定指定的委托

11.子类的方法

    (1)- (void)touchesBegan:(NSSet<UITouch *> *)touches
           withEvent:(UIEvent *)event  :触摸屏幕时开始执行这个方法

    (2)- (void)touchesMoved:(NSSet<UITouch *> *)touches
           withEvent:(UIEvent *)event  :触摸移动过程中执行这个方法

    (3)- (void)touchesEnded:(NSSet<UITouch *> *)touches
           withEvent:(UIEvent *)event  :触摸结束的时候执行这个方法

    (4)- (void)touchesCancelled:(NSSet<UITouch *> *)touches
               withEvent:(UIEvent *)event  :当触摸因为意外情况而取消就会执行这个方法

    (5)- (void)reset  :重置手势

    (6)- (void)ignoreTouch:(UITouch *)touch
           forEvent:(UIEvent *)event  :忽略某个事件的手势

    (7)- (BOOL)canBePreventedByGestureRecognizer:(UIGestureRecognizer *)preventingGestureRecognizer  :重载这个方法能够执行UIGestureRecognizerDelegate协议里面的方法gestureRecognizerShouldBegin: and gestureRecognizer:shouldReceiveTouch:.

    (8)- (BOOL)canPreventGestureRecognizer:(UIGestureRecognizer *)preventedGestureRecognizer  :Overridden to indicate that the receiver can prevent the specified gesture recognizer from recognizing its gesture.

    (9)- (BOOL)shouldRequireFailureOfGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer  :重载这个方法来设定接收者不响应指定的手势

    (10)- (BOOL)shouldBeRequiredToFailByGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer  :重载这个方法来指定接收者应该被要求失败通过指定的手势识别器,Overridden to indicate that the receiver should be required to fail by the specified gesture recognizer.

    (11)- (void)ignorePress:(UIPress *)button
           forEvent:(UIPressesEvent *)event  :告诉手势识别器忽视按的事件

    (12)- (void)pressesBegan:(NSSet<UIPress *> *)presses
           withEvent:(UIPressesEvent *)event  :当按钮被按的时候发送事件到接收者

    (13)- (void)pressesChanged:(NSSet<UIPress *> *)presses
             withEvent:(UIPressesEvent *)event  :当按钮的压力变化的时候发送事件到接收者

    (14)- (void)pressesEnded:(NSSet<UIPress *> *)presses
           withEvent:(UIPressesEvent *)event  :当按钮结束按的动作的时候发送事件给接收者

    (15)- (void)pressesCancelled:(NSSet<UIPress *> *)presses
               withEvent:(UIPressesEvent *)event  :当按钮的按动作被取消的时候发送事件到接收者

12.配置不同的手势

    (1)@property(nonatomic, copy) NSArray<NSNumber *> *allowedPressTypes  :一组不同按的类型来区分按钮被按

    (2)@property(nonatomic, copy) NSArray<NSNumber *> *allowedTouchTypes  :一组不同的触摸类型,用来区分不同的touches

13.数据类型

    (1)UIGestureRecognizerState类型

UIGestureRecognizerStatePossible,

UIGestureRecognizerStateBegan,

UIGestureRecognizerStateChanged,

UIGestureRecognizerStateEnded,

UIGestureRecognizerStateCancelled,

UIGestureRecognizerStateFailed,

UIGestureRecognizerStateRecognized = UIGestureRecognizerStateEnded

---恢复内容结束---

UIKit框架之UIGestureRecognizer的更多相关文章

  1. UIKit框架使用总结--看看你掌握了多少

    一.经常使用的,基本就是每次项目迭代都需要使用的 UIView.UILabel.UIImage.UIColor.UIFont.UIImageView.UITextField.UIButton. UIS ...

  2. Swift - 重写UIKit框架类的init初始化方法(以UITabBarController为例)

    原来写了篇文章讲UITabBarController的用法,当时是从UIViewController跳转到UITabBarController页面,代码如下: 1 self.presentViewCo ...

  3. UIKit框架

    在今后的应用程序构建中,会陆续使用各式各样的控件,因此UIKit框架的引入是必不可少的! 一.简介 UIKitk框架提供一系列的Class(类)来建立和管理iPhone OS应用程序的用户界面接口.应 ...

  4. iOS学习32之UIKit框架-可视化编程-XIB

    1. Interface Builder 可视化编程 1> 概述 GUI : 图形用户界面(Graphical User Interface, 简称GUI, 又称图形化界面) 是指采用图形方式显 ...

  5. 基础框架Fundation和UIkit框架的定义和使用

    Foundation 框架为所有应用程序提供基本的系统服务 您的应用程序以及 UIKit 和其他框架,都建立在 Foundation 框架的基础结构之上.Foundation 框架提供许多基本的对象类 ...

  6. iOS开发概述UIkit动力学,讲述UIKit的Dynamic特性,UIkit动力学是UIkit框架中模拟真实世界的一些特性。

    转发:http://my.oschina.net/u/1378445/blog/335014 iOS UIKit动力学 Dynamics UIAttachmentBehavior 实现iMessage ...

  7. iOS开发UIKit框架-可视化编程-XIB

    1. Interface Builder 可视化编程 1> 概述 GUI : 图形用户界面(Graphical User Interface, 简称GUI, 又称图形化界面) 是指采用图形方式显 ...

  8. 79、iOS 的Cocoa框架、Foundation框架以及UIKit框架

    Cocoa框架是iOS应用程序的基础 1. Cocoa是什么? Cocoa是 OS X和ios 操作系统的程序的运行环境. 是什么因素使一个程序成为Cocoa程序呢?不是编程语言,因为在Cocoa开发 ...

  9. UIKit 框架之UIView二

    下面这些都是UIView一些基本的东西,具体的可以参考UIKit 框架之UIView一博客 一.自定义一个View // // MyView.m // UIView // // Created by ...

随机推荐

  1. Sprint1(第三天11.16)

    Sprint1第一阶段 1.类名:软件工程-第一阶段 2.时间:11.14-11.23 3.选题内容:web版-餐厅到店点餐系统 4.团队博客地址: http://www.cnblogs.com/qu ...

  2. javaweb project create

    软件分享 myeclipse 10 链接:http://pan.baidu.com/s/1i3tUFpb 密码:qnyo 新建一个web project 找到web.xml 修改这里的index.ph ...

  3. C# 反射浅析

    反射是一个运行库类型发现的过程.通过反射可以得到一个给定程序集所包含的所有类型的列表,这个列表包括给定类型中定义的方法.字段.属性和事件.此外,通过反射也可以动态的发现一组给定类支持的接口.方法的参数 ...

  4. maven添加本地jar包

    今天遇到一个mavan仓库中没有的jar包, 故只能添加本地jar包, 花了不少时间找资料,终于OK.故在此记录. 1. 第一次,在网上看到说可以用<systemPath> 解决, 如下: ...

  5. 用于阻止div上的事件和div上的按钮的事件同时触发

    event.stopPropagation()  阻止事件冒泡  用于ie11以上

  6. winform webbrowser flash显示

    string flashSrc = "e:\\t.swf"; StringBuilder sb = new StringBuilder(); sb.Append("< ...

  7. C++调用约定和名字约定

    C++调用约定和名字约定 转自http://www.cppblog.com/mzty/archive/2007/04/20/22349.html 调用约定:__cdecl __fastcall与 __ ...

  8. 荣品RP4412开发板烧写内核cannot load出错的原因

    问:荣品RP4412开发板烧写必须要配置Xmanager吗? 现在我烧写内核出现这个错误是什么原因呢? 答:4412文件夹下没有zImage这个文件, 你打开4412这个文件夹. 你都拼写错了, zI ...

  9. 对git的认识

    对git这个词我听过但不了解,更谈不了认识.只能咨询百度了. Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理. Git 是 Linus Torvalds 为了帮 ...

  10. OC NSString 基本操作(用到补充持续更新)

    1.将字符串拆分成数组 NSString *string = @"1,2,3,4"; NSArray *array = [string componentsSeparatedByS ...