UIGestureRecognizer手势
常用手势: 滑动,轻点,捏合,旋转,拖拽,长按
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手势的更多相关文章
- 【学习总结】UIGestureRecognizer(手势识别器)
基本知识点 : -> IOS 3.2之后 , 苹果推出了手势识别功能 ( Gesture Recognizer ) 在触摸事件处理方面 , 简化开发难度. -> UIGesture Rec ...
- UIGestureRecognizer 手势浅析
目录[-] iOS开发中的手势体系——UIGestureRecognizer分析及其子类的使用 一.引言 二.手势的抽象类——UIGestureRecognizer 1.统一的初始化方法 2.手势状态 ...
- iOS边练边学--UIGestureRecognizer手势识别器简单介绍
iOS 3.2之后,苹果退出了手势识别功能(Gesture Recognizer),在触摸事件处理方面,大大简化了开发者的开发难度. 一.UIGestureRecognizer UIGestureRe ...
- IOS 响应者链条 and UIGestureRecognizer 手势识别器)
一次完整的触摸事件的传递响应的过程 UIAppliction --> UIWiondw -->递归找到最适合处理事件的控件 控件调用touches方法-->判断是否实现touches ...
- UIGestureRecognizer 手势
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. self.v ...
- UI中的七种手势
// // GestureRecognizerViewController.m #import "GestureRecognizerViewController.h" #impor ...
- iOS_38_手势
Pan平移手势 终于效果图: Swipe轻扫手势 LongPress长按手势 Pinch和Rotation手势 捏合(缩放)和旋转 终于效果图: 涂鸦 终于效果图: 事件分3大类:触摸.加速计.远程遥 ...
- UI中各种手势的使用点击,捏合,清扫,旋转,平移,边缘移动,长按
#import "RootViewController.h" @interface RootViewController (){ UIImageView *imageView ...
- DesignModeler GestureRecgin…
DesignModeler : 设计模式 GestureRecginzer:手势识别 作者:韩俊强 原创版权地址:http://blog.sina.com.cn/s/blog_814ecfa9 ...
随机推荐
- MyBatis Generator generatorConfig.xml配置详解
所有Generator的xml详细说明见:http://mybatis.org/generator/configreference/xmlconfig.html (英文版) 引用 http://blo ...
- LINUX下中文语言包的安装(转)
在安装盘上已经有各种语言包了,我们只需要找到他们,并安装就可以了.中文的是fonts-chinese-3.02-9.6.el5.noarch.rpmfonts-ISO8859-2-75dpi-1.0- ...
- 玩转12款Linux开源机器人
玩转12款Linux开源机器人 头条网2016-02-15 09:04 3DR Solo智能无人机发布于2015年中期.作为试图与大疆广受欢迎的Phantom系列无人机相抗衡的产品,它的双处理器运行L ...
- 【动态规划】XMU 1032 装配线问题
题目链接: http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1032 题目大意: 一个物品在2条生产线上加工,每条线上n(n<=1000)个节点 ...
- [转]Java Daemon Startup Script
How to start a Java program as a Linux daemon with an /etc/init.d script. See also: http://www.sourc ...
- F - Power Network - poj 1459(简单最大流)
题目大意:题目说了一大堆,其实都是废话......让人有些不知所云,其实就是给了一些电厂,和一些消费点,然后里面有一些路线什么的,求出消费点可以最多消费的电量是多少. 输入大意: 分析:懂了题意就是一 ...
- [置顶] 【Git入门之九】解决冲突
原创作品,转载请标明:http://blog.csdn.net/jackystudio/article/details/12309531 1.多人协作冲突 如果多人同时修改了同一个文件,那会出现什么样 ...
- fedora19配置 SSH 免密码登陆
a.ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa b.cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys ...
- 自然语言.例如:求n!。
(1).定义3个变量i.n及mul,并为i和mul均赋初值为1. (2).从键盘中输入一个数赋给n. (3).将mul乘以i的结果赋给mul. (4)i的值加1,判断i的值是否大于n.如果大于n,则执 ...
- ubuntu14.04 安装
summary: a). the way in the internet just a sugestion, I must to do it in my own hands, yes ! just ...