手势识别器的使用111

//     1、轻拍手势识别器的使用

UITapGestureRecognizer *tapGesture=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(handleTapGesture:)];

//设置需要轻拍的次数

tapGesture.numberOfTapsRequired=1;

//设置需要触摸的个数:

tapGesture.numberOfTouchesRequired=2;//使用Alt

//添加手势识别器到被作用的视图

[aView addGestureRecognizer:tapGesture];

[tapGesture release];

//    2、创建一个平移手势识别器

UIPanGestureRecognizer *panGesture=[[[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(handlePanGesture:)]autorelease];

[aView addGestureRecognizer:panGesture];

//    3、创建一个旋转手势识别器

UIRotationGestureRecognizer *rotationGesture=[[UIRotationGestureRecognizer alloc]initWithTarget:self action:@selector(handleRotationGesture:)];

[aView addGestureRecognizer:rotationGesture];

//    4、创建一个缩放手势识别器

UIPinchGestureRecognizer *pinchGesture=[[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(handlePinchGesture:)];

[aView addGestureRecognizer:pinchGesture];//捏合

tapGesture.delegate=self;

rotationGesture.delegate=self;

pinchGesture.delegate=self;

//    5、创建一个长按手势识别器

UILongPressGestureRecognizer *longPressGesture=[[[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(handleLongPressGesture:)]autorelease];

[aView addGestureRecognizer:longPressGesture];

longPressGesture.minimumPressDuration=0.5;

//    6、创建一个轻扫手势识别器

UISwipeGestureRecognizer *swipeGesture=[[[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(handleSwipeGesture:)]autorelease];

[aView addGestureRecognizer:swipeGesture];

swipeGesture.direction=UISwipeGestureRecognizerDirectionDown;

//    7、创建一个屏幕边缘轻扫识别器

UIScreenEdgePanGestureRecognizer *screenEdgeGesture=[[[UIScreenEdgePanGestureRecognizer alloc]initWithTarget:self action:@selector(handlescreenEdgeGesture:)]autorelease];

[self.view addGestureRecognizer:screenEdgeGesture];

screenEdgeGesture.edges=UIRectEdgeLeft;

//当一个手势识别器对象被识别后,会询问代理对象,是否允许同时识别其他手势识别器。如果此协议方法返回yes,表示允许。默认不允许

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{

return YES;

}

-(void)handlePanGesture:(UIPanGestureRecognizer *)sender{

UIView *aView=sender.view;

//获取手势在视图对应坐标系中产生的位移增量

CGPoint point=[sender translationInView:aView.superview];

//在上次视图形变的基础上产生新的形变

aView.transform=CGAffineTransformTranslate(aView.transform, point.x, point.y);

//将当前产生的增量归零

[sender setTranslation:CGPointZero inView:aView.superview];

}

-(void)handleRotationGesture:(UIRotationGestureRecognizer *)sender{

UIView *aView=sender.view;

aView.transform=CGAffineTransformRotate(aView.transform, sender.rotation);

sender.rotation=0;//将旋转产生的角度增量设置为0;

}

-(void)handlePinchGesture:(UIPinchGestureRecognizer *)sender{

UIView *aView=sender.view;

aView.transform=CGAffineTransformScale(aView.transform, sender.scale, sender.scale);

sender.scale=1;

}

时间: 2024-08-23 18:28:14

手势识别器的使用111的相关文章

154在屏幕中绘图时设置透明度(扩展知识:为图片视图添加点击手势识别器,来实现点击事件操作)

一张图片,通过混合模式绘制后,能得到不同效果的图片. 这里的示例仅是测试效果:实际上可以通过不同程度的混合模式绘制,来得到符合需求的效果. 效果如下: ViewController.h 1 #import <UIKit/UIKit.h> 2 3 @interface ViewController : UIViewController 4 @property (strong, nonatomic) UIImageView *imgVBlend; 5 @property (strong, nona

[iOS UI进阶 - 3.2] 手势识别器UIGestureRecognizer

A.系统提供的手势识别器 1.敲击手势 UITapGestureRecognizer numberOfTapsRequired: 敲击次数 numberOfTouchesRequired: 同时敲击触碰数(手指数) 1 - (void) testTap { 2 // 创建手势识别器 3 UITapGestureRecognizer *tapRec = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapR

UIKit框架(16)手势识别器

UIGestureRecognizer 利用手势识别器,能够轻松识别用户在某个view上面做一些常见的手势 UIGestureRecognizer是一个抽象类,定义了所有手势的基本行为,使用它的子类才能处理具体的手势 UITapGestureRecognizer                敲击 UIPinchGestureRecognizer            捏合手势 UIPanGestureRecognizer               拖拽 UISwipeGestureRecog

UI开发----target/action设计模式和代理设计模式以及手势识别器

//  Created By 郭仔  2015年04月16日21:50:33 眼睛有点痛,视力也在急速下降,心灵之窗,注意保护! ================================================ 耦合是衡量?一个程序写的好坏的标准之?一, 耦合是衡量模块与模块之间关联程度的指标 "?高内聚,低耦合"是?面向对象编程的核⼼心思想: ================ 设计模式思想很重要的 ================== target/action设计模

iOS常用手势识别器

手势识别状态: typedef NS_ENUM(NSInteger, UIGestureRecognizerState) { // 没有触摸事件发生,所有手势识别的默认状态 UIGestureRecognizerStatePossible, // 一个手势已经开始但尚未改变或者完成时 UIGestureRecognizerStateBegan, // 手势状态改变 UIGestureRecognizerStateChanged, // 手势完成 UIGestureRecognizerStateE

手势识别器

UIImageView 这个类是iOS专门用来显示图片的类,几乎所有的图片,都是用这个类显示的. 初始化方法:initWithImage: UIImageView *img = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"2.png"]]; img.frame = CGRectMake(100, 100, 200, 200); 通过图片名来初始化一个UIImageView类. 注意: ImageView的默认是NO,是

第五讲 设计模式 手势识别器

一.target/action设计模式 二.代理设计模式(delegate模式) delegate代理模式实现的步骤: 1.建立protocol协议文件,在其中声明想要执行的动作或事件 2.将协议引入要通过代理去实现的文件(在.h文件声明,在.m文件写需要通过代理去完成的事件) 3.让代理人(及代理别人执行文件的一方)遵守协议(.m文件),并实现相应的代理事件 实例代码: 练习:通过代理让自定义视图控制器帮助changeview(其是rootview子视图)完成变换颜色事件 Appdelegat

iOS 手势识别器概述

手势识别器 iOS 手势识别器(UIGestureRecognizer) 点击手势(UITapGestureRecognizer) 滑动手势(UISwipeGestureRecognizer) 旋转手势(UIRotationGestureRecognizer) 捏合手势( UIPinchGestureRecognizer) 长按手势( UILongPressGestureRecognizer) 平移手势( UIPanGestureRecognizer) 屏幕边缘平移手势(UIScreenEdge

UI-target...action设计模式,手势识别器.UIimageview

target-action设计模式 iOS设计模式之Target-Action主要是为了降低代码的耦合性.顾名思义      Target-Action模式就是指  目标-动作模式,它贯穿于iOS开发始终. 提到Target-Action,先说2个词     “高内聚,低耦合”      这主要是评价一个软件的好坏 它评判软件的好坏主要靠模板之间内聚是否高,模块间耦合度是否低. 其实Target-action模式很简单,就是当某个事件发生时,调用那个对象中的那个方法.比如:点击按钮时,调用Con