【学习总结】UIGestureRecognizer(手势识别器)
基本知识点 :
-> IOS 3.2之后 , 苹果推出了手势识别功能 ( Gesture Recognizer ) 在触摸事件处理方面 , 简化开发难度.
-> UIGesture Recognizer基类是一个抽象类, 定义了所有手势的基本行为, 使用它的子类才能处理具体的手势
UIPinchGestureRecognizer (捏合, 用于缩放)UISwipeGestureRecognizer (滑动,快速移动,是用于监测滑动的方向的)UIPanGestureRecognizer (拖移,慢速移动,是用于监测偏移的量的)
->每一个手势识别器用法都差不多
- (void)viewDidLoad {
[super viewDidLoad];
//缩放
[self testPinch];
//旋转
[self testRotation];
}
#pragma mark -- 测试缩放
- (void)testPinch
{
// 创建缩放手势识别器
UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinchView:)];
// 设置控制器为代理
pinch.delegate =self;
//添加手势识别器
[self.iconView addGestureRecognizer:pinch];
}
// 这个方法调用频率非常高
- (void)pinchView:(UIPinchGestureRecognizer *)pinch
{
// 在这个pinch.view.transform上 缩放X Y的比例
pinch.view.transform = CGAffineTransformScale(pinch.view.transform, pinch.scale, pinch.scale);
//缩放一下,立刻初始化当前比例为1,保证当前比例一直为1
pinch.scale = ;
}
#pragma mark -- 测试选装
- (void)testRotation
{
// 创建旋转手势识别器
UIRotationGestureRecognizer *rotation = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(RotationView:)];
// 设置当前控制器为代理
rotation.delegate = self;
// 添加手势识别器
[self.iconView addGestureRecognizer:rotation];
}
// 这个方法调用频率非常高
- (void)RotationView:(UIRotationGestureRecognizer *)rotote
{
// 在self.rotationView.transform 角度基础上, 加上右边的角度
rotote.view.transform = CGAffineTransformRotate(rotote.view.transform, rotote.rotation);
//先清0,保证每旋转一下之后,当前角度都为0,
rotote.rotation = ;
}
#pragma mark -- 代理啊方法
/**
* 可判断 gestureRecognizer 和 otherGestureRecognizer 返回的手势识别器是否一样,
* 允许多个手势识别器同时有效
*
* @param gestureRecognizer 传入的第0个手势识别器
* @param otherGestureRecognizer 传入的第1个手势识别器
*
* @return YES : 同时有效
*/
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
return YES;
}
【学习总结】UIGestureRecognizer(手势识别器)的更多相关文章
- IOS 响应者链条 and UIGestureRecognizer 手势识别器)
一次完整的触摸事件的传递响应的过程 UIAppliction --> UIWiondw -->递归找到最适合处理事件的控件 控件调用touches方法-->判断是否实现touches ...
- iOS边练边学--UIGestureRecognizer手势识别器简单介绍
iOS 3.2之后,苹果退出了手势识别功能(Gesture Recognizer),在触摸事件处理方面,大大简化了开发者的开发难度. 一.UIGestureRecognizer UIGestureRe ...
- 我的IOS学习之路(三):手势识别器
在iOS的学习中,对于手势的处理是极为重要的,如对于图片,我们经常需要进行旋转,缩放以及移动等.这里做一下总结,详见代码. - (void)viewDidLoad { [super viewDidLo ...
- iOS 手势识别器(UIGestureRecognizer)
UIGestureRecognizer是一个抽象类,定义了所有手势的基本行为,使用它的子类才能处理具体的手势. UIGestureRecognizer的子类有: UITapGestureRecogni ...
- [iOS UI进阶 - 3.2] 手势识别器UIGestureRecognizer
A.系统提供的手势识别器 1.敲击手势 UITapGestureRecognizer numberOfTapsRequired: 敲击次数 numberOfTouchesRequired: 同时敲 ...
- Android学习笔记_21_ViewFlipper使用详解 手势识别器
一.介绍ViewFilpper类 1.1 屏幕切换 屏幕切换指的是在同一个Activity内屏幕见的切换,最长见的情况就是在一个FrameLayout内有多个页面,比如一个系统设置页面:一个个性化设置 ...
- iOS开发UI高级手势识别器
####手势识别器 UIGestureRecognizer类 ·UITapGestureRecognizer(轻击) ·UIPinchGestureRecognizer(捏合) ·UIPanGestu ...
- iOS的触摸事件的用法以及和手势识别器的区别
1.首先来介绍下触摸事件和手势识别器的利与弊 触摸事件和手势识别器二者之间有直接的关系 手势识别器是在触摸事件的基础上演变过来的 当我们用到触摸事件时 默认的uiview是没有什么效果的 只能自定义v ...
- iOS常用手势识别器
手势识别状态: typedef NS_ENUM(NSInteger, UIGestureRecognizerState) { // 没有触摸事件发生,所有手势识别的默认状态 UIGestureReco ...
随机推荐
- [未完成][Mooc]关于线程的总结
进程和线程.Eclipse,QQ都是进程.是程序或者任务的执行过程,是动态性.持有资源(共享内存,共享文件)和线程. 这个资源就是内存. 每个程序在运行的时候都会分配一些内存. Eclipse中的源代 ...
- CSS3动画与过渡
transform:在使用2D或3D转换前需用transform-style申明转换的类型,preserve-3d或者preserve-2d 属性 translate(): 通过 translate( ...
- django 学习-4 模板标签
1.第一个标签是 if 标签 vim learn/home.html <!DOCTYPE html><html><head> <title&g ...
- beeline连接hive server遭遇MapRedTask (state=08S01,code=1)错误
采用beeline连接hive server是遭遇到如下错误: 5: jdbc:hive2://bluejoe0/default> select * from hive_triples wher ...
- HTTPClient模块的HttpGet和HttpPost
HttpClient常用HttpGet和HttpPost这两个类,分别对应Get方式和Post方式. 无论是使用HttpGet,还是使用HttpPost,都必须通过如下3步来访问HTTP资源. 1.创 ...
- android中Json数据保存方式
package com.example.savejsonproject; import java.io.File; import java.io.FileNotFoundException; impo ...
- (干货)Linux学习资源推荐
源地址 国内的专业Linux网站(GB) ChinaUnix Linux中国 实验楼: 免费提供了Linux在线实验环境,不用在自己机子上装系统也可以学习Linux,超方便实用!. 国内的专业Linu ...
- 关于《Swift开发指南》背后的那些事
时间轴(倒叙)2014年8月底在图灵出版社的大力支持下,全球第一本全面.系统.科学的,包含本人多年经验的呕心沥血之作<Swift开发指南>(配有同步视频课程和同步练习)全线重磅推出2014 ...
- Bootstrap 标签的变体 实例样式
Bootstrap 标签样式,代码如下: <!DOCTYPE html> <html> <head> <title>Bootstrap 实例 - 标签的 ...
- (转)实战Memcached缓存系统(3)Memcached配置参数初解
一.基本参数 在我们第一次安装Memcached时,一般都是用过这个命令: memcached -m 512 -u root -d -l 127.0.0.1 -p 11211 我们先来解释这几个参数的 ...