常用手势: 滑动,轻点,捏合,旋转,拖拽,长按

1.滑动(快速滑动)

let swipeUp = UISwipeGestureRecognizer(target: self, action: Selector("swipe:"))
swipeUp.direction = UISwipeGestureRecognizerDirection.Up
self.view.addGestureRecognizer(swipeUp) let swipeDown = UISwipeGestureRecognizer(target: self, action: Selector("swipe:"))
swipeDown.direction = UISwipeGestureRecognizerDirection.Down
self.view.addGestureRecognizer(swipeDown) let swipeLeft = UISwipeGestureRecognizer(target: self, action: Selector("swipe:"))
swipeLeft.direction = UISwipeGestureRecognizerDirection.Left
self.view.addGestureRecognizer(swipeLeft) let swipeRight = UISwipeGestureRecognizer(target: self, action: Selector("swipe:"))
swipeRight.direction = UISwipeGestureRecognizerDirection.Right
self.view.addGestureRecognizer(swipeRight)

获取手势事件

func swipe(recognizer:UISwipeGestureRecognizer){
if recognizer.direction == UISwipeGestureRecognizerDirection.Up{
print("向左滑动")
}else if recognizer.direction == UISwipeGestureRecognizerDirection.Left{
print("向左滑动")
} let point = recognizer.locationInView(self.view)
print(point.x,point.y)
}

2.轻点手势(点击)

//单击监听
let tapSingle = UITapGestureRecognizer(target: self, action: Selector("tapSingleDid"))
tapSingle.numberOfTapsRequired = 1//点按的次数
tapSingle.numberOfTouchesRequired = 1//点按的手指数
//双击监听
let tapDouble = UITapGestureRecognizer(target: self, action: Selector("tapDoubleDid:"))
tapDouble.numberOfTapsRequired = 2
tapDouble.numberOfTouchesRequired = 1
self.view.addGestureRecognizer(tapSingle)
self.view.addGestureRecognizer(tapDouble) //先检测是否为双击,当确定不是双击之后再执行单击
tapSingle.requireGestureRecognizerToFail(tapDouble)

点击事件

  func tapSingleDid(){
print("单击")
} func tapDoubleDid(sender: UITapGestureRecognizer){
if sender.view == self.view{
print("双击")
}
}

3.捏合手势

let pinch = UIPinchGestureRecognizer(target: self, action: Selector("pinchDid:"))
self.view.addGestureRecognizer(pinch)

事件

func pinchDid(pinch:UIPinchGestureRecognizer){
print(pinch.scale)//捏合比例
}

4.旋转手势

let rotation = UIRotationGestureRecognizer(target: self, action: Selector("rotationDid:"))
self.view.addGestureRecognizer(rotation)

事件

func rotationDid(recognizer:UIRotationGestureRecognizer){
print(recognizer.rotation*(180/CGFloat(M_PI)))//转成常用度数了
}

5.拖动手势

var panV : UIView!
panV = UIView(frame: CGRectMake(0, 0, 100, 100))
panV.center = self.view.center
panV.backgroundColor = UIColor.redColor()
self.view.addSubview(panV) let pan = UIPanGestureRecognizer(target: self, action: Selector("panDid:"))
panV.addGestureRecognizer(pan)

事件

func panDid(recognizer:UIPanGestureRecognizer){
let point = recognizer.locationInView(self.view)
panV.center = point
}

6.长按手势

let long = UILongPressGestureRecognizer(target: self, action: Selector("longDid:"))
self.view.addGestureRecognizer(long)

事件

func longDid(recognizer:UILongPressGestureRecognizer){
if recognizer.state == .Began{//由于长按会执行多次,所以需要判断手势状态
print("长按手势触发")
} }

  

来源: http://www.cnblogs.com/spaceID/p/4977559.html

UIGestureRecognizer手势的更多相关文章

  1. 【学习总结】UIGestureRecognizer(手势识别器)

    基本知识点 : -> IOS 3.2之后 , 苹果推出了手势识别功能 ( Gesture Recognizer ) 在触摸事件处理方面 , 简化开发难度. -> UIGesture Rec ...

  2. UIGestureRecognizer 手势浅析

    目录[-] iOS开发中的手势体系——UIGestureRecognizer分析及其子类的使用 一.引言 二.手势的抽象类——UIGestureRecognizer 1.统一的初始化方法 2.手势状态 ...

  3. iOS边练边学--UIGestureRecognizer手势识别器简单介绍

    iOS 3.2之后,苹果退出了手势识别功能(Gesture Recognizer),在触摸事件处理方面,大大简化了开发者的开发难度. 一.UIGestureRecognizer UIGestureRe ...

  4. IOS 响应者链条 and UIGestureRecognizer 手势识别器)

    一次完整的触摸事件的传递响应的过程 UIAppliction --> UIWiondw -->递归找到最适合处理事件的控件 控件调用touches方法-->判断是否实现touches ...

  5. UIGestureRecognizer 手势

    - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. self.v ...

  6. UI中的七种手势

    // // GestureRecognizerViewController.m #import "GestureRecognizerViewController.h" #impor ...

  7. iOS_38_手势

    Pan平移手势 终于效果图: Swipe轻扫手势 LongPress长按手势 Pinch和Rotation手势 捏合(缩放)和旋转 终于效果图: 涂鸦 终于效果图: 事件分3大类:触摸.加速计.远程遥 ...

  8. UI中各种手势的使用点击,捏合,清扫,旋转,平移,边缘移动,长按

    #import "RootViewController.h" @interface RootViewController (){    UIImageView *imageView ...

  9. DesignModeler GestureRecgin…

    DesignModeler : 设计模式     GestureRecginzer:手势识别 作者:韩俊强 原创版权地址:http://blog.sina.com.cn/s/blog_814ecfa9 ...

随机推荐

  1. totolink的n200r路由在卓越网和京东网的价钱

    totolink的n200r路由在卓越网和京东网的价钱, 应朋友需要帮忙买totolink的n200r的路由, 一向是在京东买电子产品的,之前都有在卓越网购物,所以今天也去看看卓越网上n200r的价格 ...

  2. X-SCAN扫描器插件(MYSQL弱口令以及Mongodb未授权)

    因为在很多时候的内网扫描里面没有授权的WIN的好用的,稍微小点的弱口令扫描器(生成报告,多种服务),编译成了插件,再自己弄了个MONGODB的扫描插件用着. X-SCAN加载以后: MONGODB.p ...

  3. yo angualr-fullstatck 项目打包部署

    yoeman使用grunt进行打包部署,直接运行grunt命令即可,期间会对代码进行检查,如果存在不规范的地方jshint会指定出来. grunt会对静态资源进行打包而且对资源文件名进行了MD5作为版 ...

  4. 【Oracle】windows默认共享的打开和关闭?

    Windows启动时都会默认打开admin$ ipc$ 和每个盘符的共享,对于不必要的默认共享,一般都会把它取消掉,可当又需要打开此默认共享时,又该从哪里设置呢,一般来说有两个地方,MSDOS命令和计 ...

  5. VC的UNICODE 编程

    简介 如果你编写的程序是针对非英语国家的用户,如中国.日本.东欧和中东地区,那么你一定要熟悉 UNICODE 字符集.尤其是用 Visual C++/MFC 编写针对上述国家和地区的用户的程序时,如果 ...

  6. 14.4.3 Adaptive Hash Index 自适应hash index

    14.4.3 Adaptive Hash Index 自适应hash index 自适应hash index(AHI) 让InnoDB 执行更像内存数据库在系统使用合适的负载组合和足够的内存用于Buf ...

  7. 【HDOJ】3400 Line belt

    三分. #include <cstdio> #include <cstring> #include <cmath> typedef struct { double ...

  8. poj2240 - Arbitrage(汇率问题,floyd)

    题目大意: 给你一个汇率图, 让你判断能否根据汇率盈利 #include <iostream> #include <cstdlib> #include <cstdio&g ...

  9. HDOJ 2206 IP的计算(正则表达式的应用)

    Problem Description 在网络课程上,我学到了很多有关IP的知识.IP全称叫网际协议,有时我们又用IP来指代我们的IP网络地址,现在IPV4下用一个32位无符号整数来表示,一般用点分方 ...

  10. Jenkins 初见

    在网上貌似没有找到Jenkins的中文的太多的文档,有的都是关于Hudson的一些 零零散散的,所以自己边学习边实践总结了以下系列文章,希望有助于大家对于Jenkins的使用. 本系列文章是基于我3年 ...