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 ...
随机推荐
- SQL语句宝典
1.前述: 将数据灵活运用于手掌心! link:1.经典SQL语句大全(cnblogs) 2.SQL教程(W3C)
- 在vs中连接sql的几种连接方式
sql身份验证:Data Source=.;Initial Catalog=DBName;UID=sa;Pwd=pwd windows身份验证:Data Source=.;Initial Catal ...
- 用java模拟银行柜台排队
4年前在办理银行业务的时候,看到每个办理柜台窗口前都有很多人排队. 同时在那个时间段,我正好重温了数据结构这本书.好像里面有提到银行. 所以当时就用java写了一段小程序来模拟窗口排队的情况. 有兴趣 ...
- javascript language
function class(function, this, prototype) closure与function expression没有任何关系. closure必然与function联系在一起 ...
- Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x0
如果遇到这个问题,首先考虑以下原因: 你是否在setText()方法中设置了一个int型变量,比如setText(10). 这样Android系统就会主动去资源文件当中寻找, 但是它不是一个资源文件I ...
- 【转】ubuntu打包压缩命令总结
原文网址:http://blog.csdn.net/renero/article/details/6428523 .tar解包:tar xvf FileName.tar打包:tar cvf FileN ...
- 错误 1 未能找到元数据文件“C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/wwwroot/7cb4fcd
错误 1 未能找到元数据文件“C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/wwwroot/7cb4fcd ...
- Delphi TdxBarManager通过代码生成菜单
procedure TForm6.btn1Click(Sender: TObject);var ABar:TdxBar; ABarItem:TdxBarItem; ABarSubItem:Tdx ...
- Java学习日记 集合
一.接口Map<K,V>1.V put(K key, V value)2.int size()3.public class HashMap<K, V> implements M ...
- [Java] 垃圾回收 ( Garbage Collection ) 的步骤演示
关于 JVM 垃圾回收机制的基础内容,可参考上一篇博客 垃圾回收机制 ( Garbage Collection ) 简介 上一篇博客,介绍了堆的内存被分为三个部分:年轻代.老年代.永生代.这篇博文将演 ...