ref:http://blog.csdn.net/rechard_chen/article/details/51769972
 
//点按手势的创建,这里需要实现响应事件的方法
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap)];
 
tap.delegate = self;
//  添加到需要手势的视图
[_imageView addGestureRecognizer:tap];
 
// 长按 手势的创建
// 长按手势时间比较长,可以根据手势的状态states,设置功能;
UILongPressGestureRecognizer*longPres = [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longPress:)];
 
[_imageView addGestureRecognizer:longPres];
 
// 添加 轻扫手势, 轻扫默认的方向:向右
// 一个轻扫手势只能支持一个方向
// 一个控件可以添加很多手势
UISwipeGestureRecognizer*swipeLeft = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipe:)];     //在响应方法中,可以根据轻扫的方向(direction)做事情;
//这是一个枚举类型,上下左右;
swipeLeft.direction= UISwipeGestureRecognizerDirectionLeft;
[_imageView addGestureRecognizer:swipeLeft];
   
UISwipeGestureRecognizer*swipeRight = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipe:)];
   
swipeRight.direction= UISwipeGestureRecognizerDirectionRight;
[_imageView addGestureRecognizer:swipeRight];
 
//拖拽手势的创建
UIPanGestureRecognizer *pan = [[ UIPanGestureRecognizer  alloc ] initWithTarget : self  action : @selector (pan:)];
 
[_imageView addGestureRecognizer:pan];
 
- ( void )pan:( UIPanGestureRecognizer *)pan
{
    // 获取手指偏移量,相对于最原始位置的偏移量
   CGPoint transP = [pantranslationInView:_imageView];
    // 改 imageView 形变
   _imageView.transform= CGAffineTransformTranslate(_imageView.transform, transP.x, transP.y);
    // 复位,相对于上一次
    [pansetTranslation:CGPointZeroinView:_imageView];
}
 
//在使用模拟器模拟一下两个手势的时候,需要按住option + 鼠标左键实现两个手指点击(反向运动);shift + option + 鼠标左键(同向运动);
 
//旋转手势的创建
UIRotationGestureRecognizer *rotation = [[ UIRotationGestureRecognizer  alloc ] initWithTarget : self  action :@selector (rotation:)];
rotation.delegate= self;
[_imageView addGestureRecognizer:rotation];
 
//方法的实现
- ( void )rotation:( UIRotationGestureRecognizer *)rotationGestureRecognizer
{
    _imageView . transform = CGAffineTransformRotate ( _imageView . transform , rotationGestureRecognizer. rotation);
    // 复位
    rotationGestureRecognizer.rotation = 0;
}
 
//捏合缩放手势的实现
UIPinchGestureRecognizer *pinch = [[ UIPinchGestureRecognizer  alloc ] initWithTarget : self  action : @selector(pinch:)];
 
pinch.delegate= self;
[_imageView addGestureRecognizer:pinch];
 
//响应方法的实现
- ( void )pinch:( UIPinchGestureRecognizer *)pinch
{
    // 获取相对于最原始的缩放比例
   CGFloat scale = pinch.scale;
    // x,y , x 表示宽度缩放多少, y 表示高度缩放
    _imageView . transform = CGAffineTransformScale ( _imageView . transform , scale, scale);
    // 复位
    pinch.scale = 1;  
}
 
 

手势代理方法的实现:
//当View需要同时实现多个手势的时候。需要返回YES;
- ( BOOL )gestureRecognizer:( UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:( UIGestureRecognizer *)otherGestureRecognizer;
 
//可以控制点击区域是否实现手势;通过UITouch获取当前点击的点,通过坐标控制区域
- ( BOOL )gestureRecognizer:( UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:( UITouch *)touch;

IOS手势识别,捏合,旋转,轻扫等的更多相关文章

  1. iOS七大手势之(平移、捏合、轻扫、屏幕边缘轻扫)手势识别器方法

    使用手势很简单,分为两步: 创建手势实例.当创建手势时,指定一个回调方法,当手势开始,改变.或结束时,回调方法被调用. 添加到需要识别的View中.每个手势只对应一个View,当屏幕触摸在View的边 ...

  2. iOS 手势操作:拖动、捏合、旋转、点按、长按、轻扫、自定义

    1.UIGestureRecognizer 介绍 手势识别在 iOS 中非常重要,他极大地提高了移动设备的使用便捷性. iOS 系统在 3.2 以后,他提供了一些常用的手势(UIGestureReco ...

  3. iOS手势操作,拖动,轻击,捏合,旋转,长按,自定义(http://www.cnblogs.com/huangjianwu/p/4675648.html)

    1.UIGestureRecognizer 介绍 手势识别在 iOS 中非常重要,他极大地提高了移动设备的使用便捷性. iOS 系统在 3.2 以后,他提供了一些常用的手势(UIGestureReco ...

  4. IOS 长按+轻扫(手势识别)

    @interface NJViewController () @property (weak, nonatomic) IBOutlet UIView *customView; @end @implem ...

  5. iOS 七大手势之轻拍,长按,旋转手势识别器方法

    一.监听触摸事件的做法   如果想监听一个view上面的触摸事件,之前的做法通常是:先自定义一个view,然后再实现view的touches方法,在方法内部实现具体处理代码 通过touches方法监听 ...

  6. iOS 七大手势之轻拍,长按,旋转手势识别器方法-赵小波

    一.监听触摸事件的做法 如果想监听一个view上面的触摸事件,之前的做法通常是:先自定义一个view,然后再实现view的touches方法,在方法内部实现具体处理代码 通过touches方法监听vi ...

  7. iOS手势识别的详细使用(拖动,缩放,旋转,点击,手势依赖,自定义手势)

    iOS手势识别的详细使用(拖动,缩放,旋转,点击,手势依赖,自定义手势)       1.UIGestureRecognizer介绍 手势识别在iOS上非常重要,手势操作移动设备的重要特征,极大的增加 ...

  8. ios iOS手势识别的详细使用(拖动,缩放,旋转,点击,手势依赖,自定义手势)

    iOS手势识别的详细使用(拖动,缩放,旋转,点击,手势依赖,自定义手势) 转自容芳志大神的博客:http://www.cnblogs.com/stoic/archive/2013/02/27/2940 ...

  9. iOS,手势识别简单使用

    1.iOS目前支持的手势识别(6种) 2.点按手势和慢速拖动手势简单使用 iOS目前支持的手势识别(6种) UITapGestureRecognizer(点按) UIPinchGestureRecog ...

随机推荐

  1. linux系统tomcat项目部署和tomcat访问日志

    一.只用ip地址访问 先把端口号改成80,然后用 <Host name="localhost"  appBase="webapps"    137     ...

  2. AI 人工智能 探索 (四)

    在写之前,先对昨天寻路插件再做一些补充,因为该插件不是很完善,所以当我发现有不能满足需求的时候,就会试图更改源代码,或增加接口来符合我的需求. 昨天补充了一条是 自身转向代码,今天补充另外一条,是及时 ...

  3. 学习笔记——Windows7下Android与Cocos2dx的安装配置

    1.下载eclipse.安卓SDK.配置ADT等,android开发必备,略. 2.下载NDK.Cocos2dx.Cygwin 2.1NDK下载,请下载对应的32位或者64的较大的压缩包(较小的只有t ...

  4. 分享一款CSS框架

    1.http://bulma.io/documentation/elements 2.支持IE9+ 3.内容:

  5. EF5修改edmx表结构保存后不自动更新tt (转)

    http://blog.csdn.net/panderman/article/details/8172968 不知道这算不算一个bug,当你新建一个从数据库生成的edmx时,他能正确的生成所有的tt文 ...

  6. js zhi网马

      大家对木马都不陌生了,它可能要算是计算机病毒史上最厉害的了,相信会使木马的人千千万万,但是 有很多人苦于怎么把木马发给对方,现在随着计算机的普及,在网络上我相信很少有人会再轻易的接收 对方的文件了 ...

  7. PL/SQL DEVELOPER 导出表数据

    http://jingyan.baidu.com/album/fcb5aff78e6a48edab4a7146.html?picindex=4 1. 导出表数据 打开pl/sql客户端 在左侧 点击t ...

  8. 文件夹添加 IIS 应用程序池用户权限

    http://serverfault.com/questions/81165/how-to-assign-permissions-to-applicationpoolidentity-account ...

  9. JAVA Timer定时器使用方法(二)

    JAVA  Timer 定时器测试 MyTask.java:package com.timer; import java.text.SimpleDateFormat;import java.util. ...

  10. HDU 1434 幸福列车(优先队列)

    优先队列的应用 #include<iostream> #include<cstdio> #include<cstring> #include<queue> ...