iOS开发五种触屏事件的处理

UIGestureRecognizer:是一个抽象类,表示触屏手势,这个类没有具体的作用。实际中经常使用的是这个类的子类:

UITapGestureRecognizer(敲击手势),UILongPressGestureRecognizer(长按手势),UISwipeGestureRecognizer(清扫手势),UIPinchGestureRecognizer(捏合手势),UIPanGestureRecognizer(拖拽手势)。这五种手势的使用方法大同小异,下面介绍具体的使用方法:

1. UITapGestureRecognizer(敲击手势)

UITapGestureRecognizer *tapgest = [[UITapGestureRecognizer alloc] init];

//属性 每个手势事件所带有的属性不同

//敲击事件有两个重要属性:一个是敲击的次数,一个是敲击的手指数,分别代表这个敲击事件需要敲击几次屏幕和几个手指敲击可以响应

tapgest.numberOfTapsRequired = 2;

tapgest.numberOfTouchesRequired = 1;

tapgest.delegate = self;

//监听事件,监听的这个事件一般带一个参数,这个参数就是这个手势本身

[tapgest addTarget:self action:@selector(tapgestView:)];

//添加到view

[self.imageView addGestureRecognizer:tapgest];

2. UILongPressGestureRecognizer(长按手势)

//长按  手势有开始的状态和结束的状态,而  长按时间 属性表示开始状态之前的时间,即按多长时间响应手势,松开手指时候的状态是结束状态 (开始状态和结束状态之间没有时间限制)

//手势2 长按手势

UILongPressGestureRecognizer *longgesture = [[UILongPressGestureRecognizer alloc] init];

//属性

//长按时间

longgesture.minimumPressDuration = 3;

//移动距离,在这个距离范围内按手势有用

longgesture.allowableMovement = 30;

//添加事件

[longgesture addTarget:self action:@selector(longpressView:)];

//添加到view

[self.imageView addGestureRecognizer:longgesture];

3. UISwipeGestureRecognizer(清扫手势)

//3.清扫手势

UISwipeGestureRecognizer *swip = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipView:)];

//属性

//轻扫手势有一个轻扫的方向,默认的方向是向右,可以改变

swip.direction = UISwipeGestureRecognizerDirectionUp;

//添加到view

[self.imageView addGestureRecognizer:swip];

4.  UIPinchGestureRecognizer(捏合手势)

//4.捏合手势

UIPinchGestureRecognizer *pinchgesture = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinchView:)];

//添加到view

[self.imageView addGestureRecognizer:pinchgesture];

5. UIPanGestureRecognizer(拖拽手势)

//5.拖拽手势

UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panView:)];

[self.imageView addGestureRecognizer:pan];

时间: 2024-10-22 15:02:47

iOS开发五种触屏事件的处理的相关文章

触屏事件

iphone ipad开发: 关于触屏事件的一些操作 [cpp] view plaincopyprint? //轻击: //需要在你的ViewController里重写几个方法: //开始触摸的方法 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { messageLabel.text = @”Touches Began”; [self updateLabelsFromTouches:touches]; } //触

移动端touch触屏滑动事件、滑动触屏事件监听!

移动端touch触屏滑动事件.滑动触屏事件监听! 一.触摸事件 ontouchstart.ontouchmove.ontouchend.ontouchcancel 目前移动端浏览器均支持这4个触摸事件,包括IE.由于触屏也支持MouseEvent,因此他们的顺序是需要注意的:touchstart → mouseover → mousemove → mousedown → mouseup → click1 Apple在iOS 2.0中引入了触摸事件API,Android正迎头赶上这一事实标准,缩小

WPF Multi-Touch 开发:高级触屏操作(Manipulation)

wpf多点触控操作关注博主:http://kb.cnblogs.com/page/71167/ WPF Multi-Touch 开发:高级触屏操作(Manipulation) 时间:2010-10-05 03:15来源:博客园 作者:李敬然 点击:1854次 在上一篇中我们对基础触控操作有了初步了解,本篇将继续介绍触碰控制的高级操作(Manipulation),在高级操作中包含了一些特殊的触屏手势:平移.缩放.旋转,当然在WPF 中无需自行开发这些手势,只需将UI 控件的IsManipulati

Android的触屏事件

Android系统中的每个View的子类都包含的三种和touchevent有关的三种方法. ondispathTouchEvent(); 这个方法用来分发TouchEventonInterceptTouchEvent(); 这个方法用来拦截TouchEventonTouchEvent: 这个方法用来处理TouchEvent 每次触屏事件,都有最顶层的View的ondispathTouchEvent()接受,由这个方法进行分发.当方法返回true时 ,就将触屏事件传递给该View的OntouchE

iOS开发实战——CollectionView点击事件与键盘隐藏结合案例(二)

我在前一篇博客中<iOS开发实战--CollectionView点击事件与键盘隐藏结合案例>详细实现了CollectionView与键盘组合操作中出现的多种情况,并解决了交互体验上的一些问题.在实际项目中也的确可以采用这种方法来操作.但是问题来了,原来的界面我们是使用UIView来操作的,也就是界面是不可滚动的.然而更为常见的场景是一个ScrollView,界面可以进行上下滚动.所以,这篇博客主要是对前一个案例进行优化.还有一个问题是,在自动布局Masonry结合ScrollView中,会碰到

iOS开发-检测用户截屏, 并获取所截图片

微信可以检测到用户截屏行为(Home + Power),并在稍后点击附加功能按钮时询问用户是否要发送刚才截屏的图片,这个用户体验非常好.于是乎, 我也想着实现这个功能. 在iOS7之前, 如果用户截屏,系统会自动取消屏幕上的所有 touch 事件,(使用 touchesCancelled:withEvent: 这个方法)那么我们就可以检测这个方法的调用,然后加载本地最新图片再加以判断来实现我们的目的.但在 iOS 7 之后,截屏不再会取消屏幕的 touch 事件,所以导致了 Snapchat 和

html5之移动触屏事件

HTML5的javascript touch事件 HTML5+CSS3, javascript Add comments 四282013 以下是几种普及得比较好的触摸事件,可以在绝大多数现代浏览器中来测试这一事件(必须是触屏设备): (on)touchstart:触摸开始的时候触发 (on)touchmove:手指在屏幕上滑动的时候触发 (on)touchend:触摸结束的时候触发 (on)touchcancel:系统取消touch事件的时候触发.例如电话接入或者弹出信息.一般用在游戏:玩着的时

25.Unity3D手机中Input类touch详解-Unity触屏事件解析到底(Twisted Fate)

首先贴一下Unity支持的模型文件类型,以前没有收集过. Unity支持两种类型的3D文件格式: 1.  通用的"出口型"3D文件 如.fbx..dae..3ds..dxf..obj等文件格式. 2.  3D软件专用的3D文件格式 如Max, Maya, Blender,Cinema4D, Modo, Lightwave & Cheetah3D 等软件所支持的格式,如.MAX, .MB, .MA等等. Unity3D手机中Input类touch详解: 1.Input.touch

转:Android随笔之——使用Root权限实现后台模拟全局按键、触屏事件方法(类似按键精灵)

本文转载自CSDN的jzj1993,原文连接:http://blog.csdn.net/jzj1993/article/details/39158865 有时我们需要使用安卓实现在后台模拟系统按键,比如对音量进行调节(模拟音量键),关闭前台正在运行的App(模拟返回键),或者模拟触屏事件.但是对于原生安卓系统而言,后台进程关闭前台进程,甚至模拟用户事件,进而操控整个系统,是不符合系统安全原则的,如果有这样的漏洞被病毒或恶意软件所利用,会非常危险. 由于一些特殊原因,我恰巧需要实现这样的功能,而又