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 ...
随机推荐
- C#快捷键
home:光标所在这一行的最前面 end:光标所在这一行的最后面 pg up:光标所在这一页最前一行的前面 pg dn:光标所在这一页最后一行的最后 shift+home:光标所在这一行之前的所有代码 ...
- Could not load file or assembly or one of its dependencies. 试图加载格式不正确的程序。
当我把编译好的程序托管到IIS下后,访问时出现了以下问题,服务器环境是IIS 7,操作系统 Windows server 2008 r2 64位. 出现上述问题的原因是,所加载的程序集中有32位的,也 ...
- Java—多线程编程
一个多线程程序包含两个或多个能并发运行的部分.程序的每一部分都称作一个线程,并且每个线程定义了一个独立的执行路径. 进程:一个进程包括由操作系统分配的内存空间,包含一个或多个线程.一个线程不能独立的存 ...
- 简单学会.net remoting
简介 •.net remoting是.net在RPC分布式应用的技术.首先,客户端通过 remoting访问通道以获得服务端对象,再通过代理解析为客户端对象,通过通道来实现远程对象的调用. 原理 •远 ...
- iOS沙盒(sandbox)
iOS沙盒 每个ios应用都有自己的应用沙盒,应用沙盒就是文件系统目录,默认下iOS应用只能访问自己的沙盒 extenaion是iOS8新开放的一种对几个固定系统区域的扩展机制,它可以在一定程度上弥补 ...
- [IOS 开发] 自定义(重写) UITableViewCell的高亮背景色
IOS的sdk中,对UITableViewCell的高亮背景色只支持两种颜色,分别为UITableViewCellSelectionStyleBlue和UITableViewCellSelection ...
- Android6.0获取权限
照着<第一行代码>打代码,然并卵,感叹技术进步的神速.最后提醒一点:IT类的书籍一定要注意出版时间!出版时间!出版时间!重要的事情说三遍 问题出在android6.0的权限获取问题上,以前 ...
- nodeType的意思
nodeType是用来获得当前节点对象的类型.nodeType 属性可返回节点的类型.元素element 1 属性attr 2 文本text 3 注释comments 8 ...
- [转]搭建高可用mongodb集群(二)—— 副本集
在上一篇文章<搭建高可用MongoDB集群(一)——配置MongoDB> 提到了几个问题还没有解决. 主节点挂了能否自动切换连接?目前需要手工切换. 主节点的读写压力过大如何解决? 从节点 ...
- Hammer.js
一.前言 移动端框架当前还处在初级阶段,但相对于移动端的应用来说已经有很长时间了.虽然暂时还没有PC端开发的需求量大,但移动端的Web必然是一种趋势,在接触移动端脚本的过程中,最开始想到的是juqer ...