UIKit框架之UIGestureRecognizer
---恢复内容开始---
1.继承链:NSObject
2.UIGestureRecognizer的子类有以下:
UIScreenEdgePanGestureRecognizer :拖动,不过要从侧边拖动UILongPressGestureRecognizer :长按
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.数据类型
UIGestureRecognizerStatePossible,
UIGestureRecognizerStateBegan,
UIGestureRecognizerStateChanged,
UIGestureRecognizerStateEnded,
UIGestureRecognizerStateCancelled,
UIGestureRecognizerStateFailed,
UIGestureRecognizerStateRecognized = UIGestureRecognizerStateEnded
---恢复内容结束---
UIKit框架之UIGestureRecognizer的更多相关文章
- UIKit框架使用总结--看看你掌握了多少
		
一.经常使用的,基本就是每次项目迭代都需要使用的 UIView.UILabel.UIImage.UIColor.UIFont.UIImageView.UITextField.UIButton. UIS ...
 - Swift - 重写UIKit框架类的init初始化方法(以UITabBarController为例)
		
原来写了篇文章讲UITabBarController的用法,当时是从UIViewController跳转到UITabBarController页面,代码如下: 1 self.presentViewCo ...
 - UIKit框架
		
在今后的应用程序构建中,会陆续使用各式各样的控件,因此UIKit框架的引入是必不可少的! 一.简介 UIKitk框架提供一系列的Class(类)来建立和管理iPhone OS应用程序的用户界面接口.应 ...
 - iOS学习32之UIKit框架-可视化编程-XIB
		
1. Interface Builder 可视化编程 1> 概述 GUI : 图形用户界面(Graphical User Interface, 简称GUI, 又称图形化界面) 是指采用图形方式显 ...
 - 基础框架Fundation和UIkit框架的定义和使用
		
Foundation 框架为所有应用程序提供基本的系统服务 您的应用程序以及 UIKit 和其他框架,都建立在 Foundation 框架的基础结构之上.Foundation 框架提供许多基本的对象类 ...
 - iOS开发概述UIkit动力学,讲述UIKit的Dynamic特性,UIkit动力学是UIkit框架中模拟真实世界的一些特性。
		
转发:http://my.oschina.net/u/1378445/blog/335014 iOS UIKit动力学 Dynamics UIAttachmentBehavior 实现iMessage ...
 - iOS开发UIKit框架-可视化编程-XIB
		
1. Interface Builder 可视化编程 1> 概述 GUI : 图形用户界面(Graphical User Interface, 简称GUI, 又称图形化界面) 是指采用图形方式显 ...
 - 79、iOS 的Cocoa框架、Foundation框架以及UIKit框架
		
Cocoa框架是iOS应用程序的基础 1. Cocoa是什么? Cocoa是 OS X和ios 操作系统的程序的运行环境. 是什么因素使一个程序成为Cocoa程序呢?不是编程语言,因为在Cocoa开发 ...
 - UIKit 框架之UIView二
		
下面这些都是UIView一些基本的东西,具体的可以参考UIKit 框架之UIView一博客 一.自定义一个View // // MyView.m // UIView // // Created by ...
 
随机推荐
- 对HTML5校验 自定义验证信息
			
在HTML5中,表单可以定义一个属性required来触发默认的校验机制,比如: <input type="text" required /> 弹出的错误提示默认为英文 ...
 - xampp 端口冲突
			
最近使用xampp ,提示端口有问题,使用xampp自带的 xampp control修改的端口之后还是不行. 如果是apache端口有问题就修改 xampp\apache\conf\ httpd.c ...
 - CSS中加号、星号及其他符号的作用
			
在理想世界里,正确的CSS应该在任何支持CSS的浏览器里工作良好.不幸的是, 我们并不是生活在理想的世界里,浏览 器们布满了BUG和不一致.创建一个跨浏览器并且显示一致的页面,CSS开发者必须想尽办法 ...
 - VC++使用Pro*CC++
			
几种数据库访问技术的比较 由上所述, Visual C++ 通过以上方法都可以访问Oracle 数据 库, 但是上述方法各有优缺点.ODBC 出现得比较早, 几乎支持所 有的关系型数据库, 而且有MF ...
 - 区分IE版本的三个方法
			
我们通常使用IE条件判断语言来处理IE的CSS问题,但其实还是有其他的一些方法来处理IE的CSS bug的. 一.IE条件判断语句 IE条件判断语句也许是用的最多的区分IE版本(IE6, IE7, I ...
 - 【翻译】configuration changes与handler.post
			
原文地址 http://corner.squareup.com/2013/12/android-main-thread-2.html 在前一部分里面previous part ,我们深入挖掘了 loo ...
 - 使用AXIS2客户端调用 WEBSERVICE
			
问题 在调用WEBSERVICE时,可以使用wsdl2java生成java代码,调用接口,这种方法在接口固定的情况下是一种不错的选择,如果需要动态调用接口,那么这样就行不通了. 解决办法 1.直接构建 ...
 - js 10秒倒计时 功能
			
请等待<span id=</span>秒 <script type="text/javascript"> function run(){ var s ...
 - js调用.net后台事件、后台调用前台以及js调用服务器控件
			
1. javaScript函数中执行C#代码中的函数: 方法一:间接触发后台代码 1.首先建立一个服务端控件按钮命名为btn1,双击进入后台将调用或处理的内容写入btn1_click中; 2.在前台写 ...
 - QT  做软件盘
			
最近搞了一个组织细胞脱水机项目,当然,对于国内的项目都是仿来仿去的,我们也不例外,开启被仿机器后,第一个看到的界面就是用户登录界面,需要输入中文,作为一个程序员,我的第一反应就是我需要采用什么用的框架 ...