zoukankan      html  css  js  c++  java
  • UIGesture基础手势

    下面介绍的是缩放手势和捏合手势:

    直接上代码:

     1 #import "ViewController.h"
     2 
     3 @interface ViewController ()<UIGestureRecognizerDelegate>
     4 
     5 @end
     6 
     7 @implementation ViewController
     8 
     9 - (void)viewDidLoad {
    10     [super viewDidLoad];
    11     // Do any additional setup after loading the view, typically from a nib.
    12     
    13     //如果需要同时旋转和缩放我们还需要实现一个协议UIGestureRecognizerDelegate
    14     
    15     
    16     UIImage *image = [UIImage imageNamed:@"2.jpg"];
    17     
    18     UIImageView *imageView = [[UIImageView alloc]init];
    19     imageView.frame = CGRectMake(100, 200, 300, 400);
    20     imageView.userInteractionEnabled = YES;
    21     imageView.image = image;
    22     [self.view addSubview:imageView];
    23     
    24     //添加缩放手势(捏合手势)
    25     _pinGes = [[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(pinchAct:)];
    26     
    27     [imageView addGestureRecognizer:_pinGes];
    28     
    29     //创建旋转手势
    30     _rotGes = [[UIRotationGestureRecognizer alloc]initWithTarget:self action:@selector(RotGes:)];
    31     
    32     [imageView addGestureRecognizer:_rotGes];
    33     
    34     //设置协议代理
    35     _pinGes.delegate = self;
    36     _rotGes.delegate = self;
    37     
    38 }
    39 
    40 - (void)pinchAct:(UIPinchGestureRecognizer *)pin{
    41     //获取监控图像视图(也就是上面的imageView对象)
    42     UIImageView *Iview = (UIImageView *)pin.view;
    43     //对图像视图对象进行矩阵变换计算并赋值
    44     // transform 表示图形的变换
    45     //CGAffineTransformScale 通过缩放的方式产生一个新矩阵
    46     //p1 原来的矩阵
    47     //p2 x方向的的缩放比例
    48     //p3 y方向的缩放比例
    49     Iview.transform = CGAffineTransformScale(Iview.transform, pin.scale, pin.scale);
    50     
    51     
    52     //将缩放值归位为单位值
    53     pin.scale = 1;
    54     
    55 }
    56 
    57 - (void)RotGes:(UIRotationGestureRecognizer *)rotGes{
    58     
    59     //获取旋转对象
    60     UIImageView *Iview = (UIImageView *)rotGes.view;
    61     //计算旋转变化并赋值
    62     Iview.transform = CGAffineTransformRotate(Iview.transform, rotGes.rotation);
    63     
    64     //选择角度清零;
    65     rotGes.rotation = 0;
    66     
    67     
    68 }
    69 //实现协议方法
    70 //是否可以同时响应俩个手势
    71 //如果返回值为YES 可以同时响应;
    72 -(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{
    73     
    74     return YES;
    75 }

    这样就可以简单的实现对视图的缩放(捏合)和旋转.

  • 相关阅读:
    CC
    codeforces 984 E. Elevator
    codeforces 984 D. XOR-pyramid
    codeforces 984 C. Finite or not?
    codeforces 984 B. Minesweeper
    codeforces 984 A. Game
    Loj #6000. 「网络流 24 题」搭配飞行员
    2015-2016 ACM-ICPC, NEERC, Northern Subregional Contest 训练报告
    省赛训练 分块9题
    AC自动机 hdu 2222 Keywords Search
  • 原文地址:https://www.cnblogs.com/LzwBlog/p/5669152.html
Copyright © 2011-2022 走看看