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. AI 人工智能 探索 (一)

    碰撞检测 //逗留碰撞 void OnTriggerStay (Collider other) { if (other.transform.name == name) { //检测距离 //根据距离 ...

  2. Video Pooling

    Video pooling computes video representation over the whole video by pooling all the descriptors from ...

  3. Python虚拟环境安装virtualenv

    解决了多个版本共存的问题 virtualenv 为每个不同项目提供一份 Python 安装.它并没有真正安装多个 Python 副本,但是它确实提供了一种巧妙的方式来让各项目环境保持独立. 安装vir ...

  4. 一个好用简单的布局空间EasyUI

    之前项目中都是前端来新写的页面,对于很多后台管理系统来说,新写页面其实比较麻烦. 最近看到一款还是不错的开源页面框架EasyUi http://www.jeasyui.com/index.php 这是 ...

  5. Redis(1)在windows环境下的安装和测试

    初次准备使用redis,一个著名的nosql缓存数据库. 这里是第一天,就简单写一下windows下的安装,遇到的一些问题,然后简单的使用和测试,之后会在代码中使用和测试. 之后还会在生产环境中进行测 ...

  6. $.ajax和$.post的区别(前者根据key-value/后者根据形参)

    post不需要给key-value形式: $("#btn").click(function(){ var url=basePath+"/emp/login"; ...

  7. MyEclipse8.5安装findbugs方法

    step 1:首先从官网下载findbugs插件: edu.umd.cs.findbugs.plugin.eclipse_1.3.9.20090821.zipstep 2:将解压之后的edu.umd. ...

  8. Polygone对象

    Polylgon对象是由一个或多个Ring对象的有序集合,它可以是由单个Ring 对象构成,也可以使用多个Ring组成.Polygon通常用来代表有面积的多边形矢量对象,如行政区,建筑物等. 组成Po ...

  9. 2016大连网络赛 Weak Pair

    Weak Pair Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Prob ...

  10. angularJS在创建指令需要注意的问题(指令中使用ngRepeat)

    现在发现,当初的自己真的是太菜了,为什么你在指令中更改数据,没有作用呢?这其实是原型链的问题. 详细的我就不在这里说了,有位大神早已发布了这个内容,在这里复制个地址给大家,有兴趣的可以看看 http: ...