手势识别(拖动,旋转,捏合)

09-手势识别(拖动,旋转,捏合)

1.平移    
          UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self
                                                                      action:@selector(pan:)];
           添加手势
          [self.imageV addGestureRecognizer:pan];
          
          实现手势方法
           手指在屏幕上移动进调用
            - (void)pan:(UIPanGestureRecognizer *)pan{
                获取当前手指移动的偏移量
                CGPoint transP =  [pan translationInView:self.imageV];
                NSLog(@"%@",NSStringFromCGPoint(transP));
                Make它会清空上一次的形变.
                self.imageV.transform = CGAffineTransformMakeTranslation(transP.x, transP.y);
                
                self.imageV.transform = CGAffineTransformTranslate(self.imageV.transform, 
                                                                           transP.x, transP.y);
                复位,相对于上一次.
                [pan  setTranslation:CGPointZero inView:self.imageV];
            }

2.旋转
          
        添加旋转手势
        UIRotationGestureRecognizer *rotation = [[UIRotationGestureRecognizer alloc] 
                                     initWithTarget:self action:@selector(rotation:)];
        设置代理,设置代理的目的就让它能够同时支持旋转跟缩放
        rotation.delegate = self;
        添加手势
        [self.imageV addGestureRecognizer:rotation];
        
        
        当旋转时调用
        - (void)rotation:(UIRotationGestureRecognizer *)rotation{
            旋转也是相对于上一次
            self.imageV.transform = CGAffineTransformRotate(self.imageV.transform, 
                                                                 rotation.rotation);
            设置代理,设置代理的目的就让它能够同时支持旋转跟缩放
            rotation.delegate = self;
            也要做复位操作
            rotation.rotation = 0;
        }
    
    3.添加缩放手势
        添加缩放手势
        UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc]                                             initWithTarget:self action:@selector(pinch:)];
        
       [self.imageV addGestureRecognizer:pinch];

缩放手势时调用
        -(void)pinch:(UIPinchGestureRecognizer *)pinch{
            平移也是相对于上一次
            self.imageV.transform = CGAffineTransformScale(self.imageV.transform, pinch.scale, 
                                                                                  pinch.scale);
            复位
            pinch.scale = 1;
        }

时间: 2025-01-08 13:00:03

手势识别(拖动,旋转,捏合)的相关文章

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

1.UIGestureRecognizer 介绍 手势识别在 iOS 中非常重要,他极大地提高了移动设备的使用便捷性. iOS 系统在 3.2 以后,他提供了一些常用的手势(UIGestureRecognizer 的子类),开发者可以直接使用他们进行手势操作. UIPanGestureRecognizer(拖动) UIPinchGestureRecognizer(捏合) UIRotationGestureRecognizer(旋转) UITapGestureRecognizer(点按) UILo

ios手势识别之旋转+缩放

1 #import "NJViewController.h" 2 3 @interface NJViewController ()<UIGestureRecognizerDelegate> 4 @property (weak, nonatomic) IBOutlet UIImageView *iconView; 5 6 @end 7 8 @implementation NJViewController 9 10 - (void)viewDidLoad 11 { 12 [su

【iOS开发-89】UIGestureRecognizer手势识别完成旋转、缩放和拖拽等效果

(1)效果 (2)代码 http://download.csdn.net/detail/wsb200514/8261001 (3)总结 --先根据所需创建不同类型的手势识别,比如: UITapGestureRecognizer UISwipeGestureRecognizer UIPinchGestureRecognizer UIRotateGestureRecognizer UIPanGestureRecognizer --然后把这些手势对象利用addGestureRecognizer方法添加

基于css3新属性transform及原生js实现鼠标拖动3d立方体旋转

基于css3新属性transform,实现3d立方体的旋转 通过原生JS,点击事件,鼠标按下.鼠标抬起和鼠标移动事件,实现3d立方体的拖动旋转,并将旋转角度实时的反应至界面上显示 实现原理:通过获取鼠标点击屏幕时的坐标和鼠标移动时的坐标,来获得鼠标在X轴.Y轴移动的距离,将距离实时赋值给transform属性 从而通过改变transform:rotate属性值来达到3d立方体旋转的效果 HTML代码块: <body> <input type="button" clas

设置图片大小和旋转

xml <ImageView android:id="@+id/img" android:layout_width="match_parent" android:layout_height="wrap_content" android:src="@drawable/left" android:scaleType="fitCenter" /> <TextView android:layout

Unity学习-相机的拉伸、跟随、旋转

原创,转载请注明出处@JeroChan 学习了siki的黑暗之光,在学习老师的实现代码之余自己网上还查找了其他的实现方法,为了以后项目方便自己独立封装了旋转.拉伸的方法,使耦合度尽量降低. 定义 private GameObject playerObject;private Camera cameraObject;private Vector3 offSetPos; //偏移(相机与目标的差)public float fieldViewMax = 90f; //拉伸距离最远距离public fl

iOS--手势之谜

原文转至: http://www.cnblogs.com/huangjianwu/p/4675648.html iOS在手机APP的手势操作中包含了:拖动.捏合.旋转.点按.长按.轻扫.自定义等等,详情如下: 1.UIGestureRecognizer 介绍 手势识别在 iOS 中非常重要,他极大地提高了移动设备的使用便捷性. iOS 系统在 3.2 以后,他提供了一些常用的手势(UIGestureRecognizer 的子类),开发者可以直接使用他们进行手势操作. UIPanGestureRe

我的iOS 学习 - 学习基本手势

iOS设计手势符合人的操作习惯,提供了良好的用户体验. UIGestureRecognizer 手势抽象类,实现类 : UITapGestureRecognizer  轻击 UILongPressGestureRecognizer  长按 UISwipeGestureRecognizer  轻扫 UIPanGestureRecognizer  拖动 UIPinchGestureRecognizer  捏合缩放 UIRotationGestureRecognizer  旋转 下面是示例,简单的创建

手势,手势应用小程序

第一, 手势是指从用一个或多个手指接触屏幕开始,直到手指离开屏幕为止的所有事件. 注意: 在iPhone中最多同时可以支持5点触摸,iPad中最多同时可以支持11点触摸.模拟器中按下option键,可以模拟两点触摸. 第二, 手势识别器:UIGestureRecognizer 关系:UIGestureRecognizer是在Touch的基础上封装出来的: UIGestureRecognizer的子类: UITapGestureRecognizer;//轻拍识别器 UILongPressGestu