【学习总结】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 ...
随机推荐
- Oracle procedure 基本语法
转自:http://lorry1113.javaeye.com/blog/513851 关键字: oracle 存储过程 1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程 ...
- hdu 4632 动态规划
思路:dp[i][j]表示区间(i,j)中回文串的个数,那么dp[i][j]=dp[i+1][j]+dp[i][j-1]-dp[i+1][j-1]:如果str[i]==str[j],那么dp[i][j ...
- Remoting的入门教程
注:<网摘自http://www.codesky.net/article/200411/48322.html> 基本原理 当客户端创建远程RemotableClass的一个实例,.NET框 ...
- python学习day2--python基础
python没有常量的定义方式,一般常量可人为用全部大写字母来表示. 如: MYSQL_CONNECTION='192.168.10.2' 以os库为例: import os os.system('i ...
- CSS之鼠标经过字体光标形状的改变
CSS中的cursor属性是规定要显示的光标的类型(形状). 参阅JavaScript正则表达式 default 默认光标(通常是一个箭头) auto 默认.浏览器设置的光标. crosshair 光 ...
- C# 中控件 WebBrowser 对 frameset/ iframe 操作和内容获取
1.获取frame的document HtmlDocument htmlDoc = webBrowser1.Document; htmlDoc = webBrowser1.Document.Wind ...
- Oracle学习第二天---Profile的使用
环境:Oracle 11g 一.权限的传递 1.如果传递的是对象权限,就在后面加入with grant option: eg:system用户有张temp的表,只想usertest用户拥有查询的权限, ...
- Oracle工程师技能树
整理了份Oracle工程师的技能树,方便大家在学习的过程中有个大体方向. 欢迎提意见,可以随时更新. 源文件链接地址点此 图片如下: 多媒体插件如下:
- Windows7下安装搭建play框架
作者:Sungeek 出处:http://www.cnblogs.com/Sungeek/ 欢迎转载,也请保留这段声明.谢谢! 1.首先官网下载play的解压包 https://playframewo ...
- htm5实现视差动画
requestAnimationFrame.js window.requestAnimFrame = (function() { return window.requestAnimationFrame ...