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. 复选框(checkbox)、单选框(radiobox)的使用

    复选框(checkbox).单选框(radiobox)的使用 复选框: HTML: // 复选框 <input type="checkbox" name="chec ...

  2. elasticsearch安装与基础用法

    来自官网,版本为2.3 注意elasticsearch依赖jdk,2.3依赖jdk7 下载rpm包并安装 wget -c https://download.elastic.co/elasticsear ...

  3. MyEclipse 10.7 添加JBOSS 6应用服务器

    首先,确保你的JAVA和JBOSS的环境变量配置正确然后,在myeclipse中,window->preferences->myeclipse->servers->JBOSS- ...

  4. windows 中 使用MongoDB

    MongoDB简介 MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种.它在许多场景下可用于替代传统的关系型数据库或键/值存储方式. 传统的关系数据库一般由 ...

  5. 深入浅出设计模式——备忘录模式(Memento Pattern)

    模式动机 为了使软件的使用更加人性化,对于误操作,我们需要提供一种类似“后悔药”的机制,让软件系统可以回到误操作前的状态,因此需要保存用户每一次操作时系统的状态,一旦出现误操作,可以把存储的历史状态取 ...

  6. hdu3847Trash Removal(凸包)

    链接 这题居然是WF的题, 应属于签到题.. 求一个多边形是否能被一个宽为d的矩形框住. 可以求一下凸包,然后枚举每条凸包的边,找出距离最远的点. #include <iostream> ...

  7. (十)Linux 网络编程之ioctl函数

    1.介绍 Linux网络程序与内核交互的方法是通过ioctl来实现的,ioctl与网络协议栈进行交互,可得到网络接口的信息,网卡设备的映射属性和配置网络接口.并且还能够查看,修改,删除ARP高速缓存的 ...

  8. Deep Learning 17:DBN的学习_读论文“A fast learning algorithm for deep belief nets”的总结

    1.论文“A fast learning algorithm for deep belief nets”的“explaining away”现象的解释: 见:Explaining Away的简单理解 ...

  9. 安装solidity遇见的问题——unused variable 'returned'

    在编译安装solidity的过程中遇见了一个很奇怪的问题 webthree-umbrella/libethereum/libethereum/Executive.cpp: In member func ...

  10. python中main()函数写法

    顶顶大名的Guido van Rossum(Python之父)推荐的main写法: #!/usr/bin/python import sys import getopt class Usage(Exc ...