UISB 手势进阶

ViewController.h

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

{
    //定义一个缩放手势 用来对视图可以进行放大缩小
    //Pinch 捏合手势
    UIPinchGestureRecognizer* _pinchGes;
    
    //定义一个旋转手势 主要用来旋转图像大小
    UIRotationGestureRecognizer* _rotGes;
    
    
}


@end

ViewController.m

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    
    
    UIImage* image =[UIImage imageNamed:@"b.jpg"];
    
    UIImageView* iView=[[UIImageView alloc]initWithImage:image];
    iView.frame=CGRectMake(100, 100, 250, 200);
    //开启手势功能
    iView.userInteractionEnabled=YES;
    
    [self.view addSubview:iView];
    //创建一个捏合手势
    //P1 事件对象的一个拥有着
    //P2 事件响应函数
    
    _pinchGes =[[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(pinchAct:)];
    
    [iView addGestureRecognizer:_pinchGes];
    
    
    
}
//捏合手势事件函数实现
//参数 捏合手势对象

-(void)pinchAct:(UIPinchGestureRecognizer* )pinch
{
    
    //获取监控图像视图
    UIImageView* iView=(UIImageView*) pinch.view;
    //对图像视图对象进行矩阵变换你计算并赋值
    //transform 表示图形学中变换矩形
    //CGAffineTransformScale 通过缩放的方式产生一个新矩形
    //参数1 原来的矩阵
    //参数2 x方向缩放比例
    //参数3 y方向缩放比例
    //返回值时新的缩放后的矩形变换
    
    
    
    iView.transform=CGAffineTransformScale(iView.transform, pinch.scale, pinch.scale);
    //将缩放值归位为单位值
    pinch.scale=1;
}

@end
原文地址:https://www.cnblogs.com/zhangqing979797/p/13698004.html