ios学习之UISwipeGestureRecognizer手势识别

 

本文部分转自俺是一个瓜娃!!!的博客UISwipeGestureRecognizer ---手指动作,转载过来仅是为了自己查询方便。

 
 

tap是指轻触手势。类似鼠标操作的点击。从iOS 3.2版本开始支持完善的手势api:

  • tap:轻触
  • long press:在一点上长按
  • pinch:两个指头捏或者放的操作
  • pan:手指的拖动
  • swipe:手指在屏幕上很快的滑动
  • rotation:手指反向操作

- (void)viewDidLoad

{

[superviewDidLoad];

infoView=[[UIViewalloc] initWithFrame:CGRectMake(20, 300, 768-400, 70)];

infoView.backgroundColor=[UIColorblueColor];

infoView.alpha=0.6;

infoView.layer.cornerRadius=6;

infoView.layer.masksToBounds=YES;

[self.view addSubview:infoView];

/******************监视手势控制*****************/

UISwipeGestureRecognizer *recognizer;

recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];

[recognizer setDirection:(UISwipeGestureRecognizerDirectionRight)];

[[selfview] addGestureRecognizer:recognizer];

[recognizer release];

recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];

[recognizer setDirection:(UISwipeGestureRecognizerDirectionUp)];

[[selfview] addGestureRecognizer:recognizer];

[recognizer release];

recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];

[recognizer setDirection:(UISwipeGestureRecognizerDirectionDown)];

[[selfview] addGestureRecognizer:recognizer];

[recognizer release];

recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];

[recognizer setDirection:(UISwipeGestureRecognizerDirectionLeft)];

[[selfview] addGestureRecognizer:recognizer];

[recognizer release];

}

/******************手势控制操作及切换特效*****************/

//滑动事件1

-(void)handleSwipeFrom:(UISwipeGestureRecognizer *)recognizer{

//如果往左滑

if(recognizer.direction==UISwipeGestureRecognizerDirectionLeft) {

//先加载数据,再加载动画特效

[self nextQuestion];

self.view.frame = CGRectMake(320, 0, 320, 480);

[UIViewbeginAnimations:@"animationID"context:nil];

[UIViewsetAnimationDuration:0.3f];

[UIViewsetAnimationCurve:UIViewAnimationCurveEaseInOut];

[UIViewsetAnimationRepeatAutoreverses:NO];

self.view.frame = CGRectMake(0, 0, 320, 480);

[UIViewcommitAnimations];

}

//如果往右滑

if(recognizer.direction==UISwipeGestureRecognizerDirectionRight) {

[self lastQuestion];

self.view.frame = CGRectMake(-320, 0, 320, 480);

[UIViewbeginAnimations:@"animationID"context:nil];

[UIViewsetAnimationDuration:0.3f];

[UIViewsetAnimationCurve:UIViewAnimationCurveEaseInOut];

[UIViewsetAnimationRepeatAutoreverses:NO];

self.view.frame = CGRectMake(0, 0, 320, 480);

[UIViewcommitAnimations];

}

}

//滑动触发事件2

-(void)handleSwipeFrom:(UISwipeGestureRecognizer *)recognizer {

NSLog(@"Swipe received.");

if (recognizer.direction==UISwipeGestureRecognizerDirectionDown) {

NSLog(@"swipe down");

[UIViewbeginAnimations:@"animationID"context:nil];

[UIViewsetAnimationDuration:0.7f];

[UIViewsetAnimationCurve:UIViewAnimationCurveEaseInOut];

[UIViewsetAnimationRepeatAutoreverses:NO];

[UIViewsetAnimationTransition:UIViewAnimationTransitionCurlDownforView:self.viewcache:YES];

[infoViewremoveFromSuperview];

[self.view addSubview:infoView];

[UIViewcommitAnimations];

}

if (recognizer.direction==UISwipeGestureRecognizerDirectionUp) {

NSLog(@"swipe up");

[UIViewbeginAnimations:@"animationID"context:nil];

[UIViewsetAnimationDuration:0.7f];

[UIViewsetAnimationCurve:UIViewAnimationCurveEaseInOut];

[UIViewsetAnimationRepeatAutoreverses:NO];

[UIViewsetAnimationTransition:UIViewAnimationTransitionCurlUpforView:self.viewcache:YES];

[infoViewremoveFromSuperview];

[self.view addSubview:infoView];

[UIViewcommitAnimations];

}

}

//点击出发事件

-(void)handleTapFrom:(UITapGestureRecognizer *)recognizer{

NSLog(@">>>tap it");

}

ios学习之UISwipeGestureRecognizer手势识别的更多相关文章

  1. iOS学习路线图

    一.iOS学习路线图   二.iOS学习路线图--视频篇       阶 段 学完后目标 知识点 配套学习资源(笔记+源码+PPT) 密码 基础阶段 学习周期:24天       学习后目标:    ...

  2. IOS触摸事件和手势识别

    IOS触摸事件和手势识别 目录 概述 触摸事件 手势识别 概述 为了实现一些新的需求,我们常常需要给IOS添加触摸事件和手势识别 触摸事件 触摸事件的四种方法 -(void)touchesBegan: ...

  3. 2015最新iOS学习线路图

    iOS是由苹果公司开发的移动操作系统,以xcode为主要开发工具,具有简单易用的界面.令人惊叹的功能,以及超强的稳定性,已经成为iPhone.iPad 和iPod touch 的强大基础:iOS 内置 ...

  4. iOS学习-压缩图片(改变图片的宽高)

    压缩图片,图片的大小与我们期望的宽高不一致时,我们可以将其处理为我们想要的宽高. 传入想要修改的图片,以及新的尺寸 -(UIImage*)imageWithImage:(UIImage*)image ...

  5. 【原】iOS学习之事件处理的原理

    在iOS学习23之事件处理中,小编详细的介绍了事件处理,在这里小编叙述一下它的相关原理 1.UITouch对象 在触摸事件的处理方法中都会有一个存放着UITouch对象的集合,这个参数有什么用呢? ( ...

  6. iOS学习笔记——AutoLayout的约束

    iOS学习笔记——AutoLayout约束 之前在开发iOS app时一直以为苹果的布局是绝对布局,在IB中拖拉控件运行或者直接使用代码去调整控件都会发上一些不尽人意的结果,后来发现iOS在引入了Au ...

  7. 【原】iOS学习47之第三方-FMDB

    将 CocoaPods 安装后,按照 CocoaPods 的使用说明就可以将 FMDB 第三方集成到工程中,具体请看博客iOS学习46之第三方CocoaPods的安装和使用(通用方法) 1. FMDB ...

  8. 黑苹果-IOS学习的开始

    深知安装黑苹果的不易,在这里写一下关于我的Thinkpad E430c安装黑苹果教程(Mac版本:Yosemite 10.10.4),希望能够帮助有需要的朋友. 首先贴上我的电脑配置报表: ----- ...

  9. iOS 学习资源

    这份学习资料是为 iOS 初学者所准备的, 旨在帮助 iOS 初学者们快速找到适合自己的学习资料, 节省他们搜索资料的时间, 使他们更好的规划好自己的 iOS 学习路线, 更快的入门, 更准确的定位的 ...

随机推荐

  1. python(三)set集合

    set集合的特点是无序.不重复序列 创建集合: 1 2 3 4 5 6 7 8 9 10 11 12 13 a.s1 = {11,22} b.s2 = set() c.s3 = set([11,22, ...

  2. Android 编译时注解解析框架

    2.注解 说道注解,竟然还有各种分类,得,这记不住,我们从注解的作用来反推其分类,帮助大家记忆,然后举例强化大家的记忆,话说注解的作用: 1.标记一些信息,这么说可能太抽象,那么我说,你见过@Over ...

  3. [问题2014A01] 解答三(升阶法,由董麒麟同学提供)

    [问题2014A01] 解答三(升阶法,由董麒麟同学提供) 引入变量 \(y\),将 \(|A|\) 升阶,考虑如下行列式: \[|B|=\begin{vmatrix} 1 & x_1-a & ...

  4. EFS加密解密----重装系统后

    重装系统尤其是格式化重装系统之后,如果没有正确地备份私钥,那么加密的文件将无法打开,加密的文件也暂时没有办法进行快速破解. 并非重装后用相同用户名+密码就可以解密的. Advanced EFS Dat ...

  5. OSG开发概览

    1 OSG基础知识 Ø OSG是Open Scene Graphic 的缩写,OSG于1997年诞生于以为滑翔机爱好者之手,Don burns  为了对滑翔机的飞行进行模拟,对openGL的库进行了封 ...

  6. HDU-4534 郑厂长系列故事——新闻净化 AC自动机+DP

    题意:给定一些单词,这些单词必须要是一个目标串的子串,同时给定一些串,这些串不能够出现在目标串中,其余一些串只会带来不同附加值.现在问满足前两者的情况下,要求附加值最大.数据给定一个原始串,现在要求在 ...

  7. Delphi 使用之连接数据库

    DELPHI 中的数据库开发有很多种类的,可以连接Access数据库.MS SQL Server 数据库.Oracle 数据库.MySQL数据库等等,一般连接有两种方式:BDE和ADO两种方式, 都是 ...

  8. Design pattern---观察者模式

    观察者模式:发布/订阅模式,当某对象(被观察者)状态发生改变时所有订阅该对象的观察者对象(观察者)都将更新自己 成员(4种): 1.抽象被观察者:将所有的观察者对象的引用存入一个集合,并且定义了添加 ...

  9. JavaScript基础知识汇总

    1. 图片热区: <img src="logo.jpg" usemap="#logo"> <map id="logo" n ...

  10. mysql查询结果输出到文件

    mysql查询结果导出/输出/写入到文件 方法一: 直接执行命令: mysql> select count(1) from table  into outfile '/tmp/test.xls' ...