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

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. Light OJ 1104 第六周F题

    F - 概率(经典问题) Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu   Descri ...

  2. A题

    A - A Time Limit:1000MS     Memory Limit:131072KB     64bit IO Format:%I64d & %I64u   Descriptio ...

  3. getsockname和getpeername函数

    这2个函数或者返回与某个套接字关联的本地协议地址(getsockname),或者返回与某个套接字关联的外地协议地址(getpeername) int getsockname(int sockfd, s ...

  4. URL加载系统----iOS工程师必须熟练掌握

    URL加载系统----iOS工程师必须熟练掌握     iOS根本离不开网络——不论是从服务端读写数据.向系统分发计算任务,还是从云端加载图片.音频.视频等.   当应用程序面临处理问题的抉择时,通常 ...

  5. 从零开始学Sketch——入门篇-b

    如果你是一枚交互设计师或者UI设计师,那么你一定知道Sketch这个强大的矢量设计软件:如果你用过Photoshop,那么在你接触了Sketch之后就能了解到这款产品相对于PS的优点,说不定会跟我一样 ...

  6. Tomcat基础教程(一)

    Tomcat, 是Servlet和JSP容器,其是实现了JSP规范的servlet容器.它在servlet生命周期内包容,装载,运行,和停止servlet容器. Servlet容器的三种工作模式: 1 ...

  7. 转:聊聊并发(八)——Fork/Join框架介绍

    1. 什么是Fork/Join框架 Fork/Join框架是Java7提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架. 我们再通过 ...

  8. How Many Points of Intersection?

    uva10790:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_prob ...

  9. BZOJ1528: [POI2005]sam-Toy Cars

    1528: [POI2005]sam-Toy Cars Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 282  Solved: 129[Submit][S ...

  10. 两个Select 之间的值的传递

    运行效果: 下面是代码: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML ...