IOS开发 UIGesture高级手势

本字学习内容:

1.UIGesture高级手势类型

2.UIGesture高级手势属性

3.UIGesture高级手势用法

【UIGesture基础】

1.UIPinchGesture和UIRotationGesture手势属性

view trasform:变换矩阵属性

RotGesture rotation:旋转属性

PinchGesture scale:缩放属性

CGAffileTransformScale();缩放变换函数

CGAffileTransformRotate();旋转变换函数


【viewController.h】

#import

@interface ViewController:UIViewController{

//定义一个缩放手势,用来对视图可以进行放大缩小

//Pinch:捏合手势

UIPinchGestureRecognizer* _pinchGes;

//定义一个旋转手势,主要用户旋转图像和视图

UIRotationGestureRecognizer* _rotGes;

}

@end


【ViewController.m】

-(void)viewDidLoad{

[super viewDidLoad];

//加载图像

UIImage( image=[UIImage imageNamed:"xx.jpg"];

UIImageView* iview=[[UIImageView alloc]initWithImage:image];

iview.frame=CGRectMake(50,80,200,320);

//开启交互功能

iView.userInteractionEnabled=YES;

[self.view addSubview:iView];

//创建一个捏合手势,参数1:事件对象的拥有者,参数2:事件响应函数

_pinchGes=[[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(pinchAct:)];

//将捏合手势添加到视图中

[iView addGestureRecognizer:_pinchGes];

//创建旋转手势

_rogGes=[[UIRotationGestureReconizer alloc]initWithTarget:self acion:@selector(rotAct:){

[iView addGestureRecognizer:_rogGes];

//设置手势代理,旋转与捏合可以同时操作

_rotGes.delegate=self;

_pinchGes.delegate=self;

}

//是否可以同时响应两个手势,如果返回YES:可以同时响应,如果返回为NO:不可以同时响应

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer

shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer

*)otherGestureRecognizer

{

return YES;

}


-(void)pinckAct:(UIPinchGestureRecognizer*)rot{

UIImageView* iView=(UIImageView*) rot.view;

//计算旋转的变抱紧矩阵并且赋值

iView.tranform=CGAffineTransformRotate(iView.transform,rot.rotation);

//选择角度清零

rot.rotation=0;

}

//捏合事件函数实现

-(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);

//将缩放值归位为单位值,scale=1表示原来大小,Scale<1:缩小效果,Scale>1:放大效果

pinch.scale=1;

}

你可能感兴趣的:(IOS开发 UIGesture高级手势)