IOS7手势识别
2013-11-17 22:48
218 查看
//添加一个view 给view加上各种手势查看效果
UIView *gestureTestView = [[UIView alloc]initWithFrame:CGRectMake(100, 100, 200, 200)] ;
gestureTestView.backgroundColor = [UIColor greenColor];
//开启UIVIew的事件响应
gestureTestView.userInteractionEnabled = YES;
[self.view addSubview:gestureTestView];
//添加单击手势
UITapGestureRecognizer *tapOne = [[UITapGestureRecognizer alloc]init];
//设置响应事件的点击次数
tapOne.numberOfTapsRequired = 1;
//设置点击手指的个数
tapOne.numberOfTouchesRequired = 1;
//添加事件响应函数
[tapOne addTarget:self action:@selector(tapOneCallBack:)];
//把手势添加到view上
[gestureTestView addGestureRecognizer:tapOne];
//添加双击手势
UITapGestureRecognizer *tapTwo = [[UITapGestureRecognizer alloc]init];
//点击次数
tapTwo.numberOfTapsRequired = 2;
//事件响应函数
[tapTwo addTarget:self action:@selector(tapTwoCallBack:)];
//优先响应双击事件,双击时单击事件不识别
[tapOne requireGestureRecognizerToFail:tapTwo];
//把手势添加到View
[gestureTestView addGestureRecognizer:tapTwo];
UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc]init];
[panGesture addTarget:self action:@selector(panCallBack:)];
[gestureTestView addGestureRecognizer:panGesture];
//创建缩放手势
UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc]init];
[pinch addTarget:self action:@selector(pinch:)];
// pinch.delegate = self;//设不设置代理都可以
[gestureTestView addGestureRecognizer:pinch];
//创建旋转手势
UIRotationGestureRecognizer *rot = [[UIRotationGestureRecognizer alloc]init];
[rot addTarget:self action:@selector(rotAction:)];
//rot.delegate = self;
[gestureTestView addGestureRecognizer:rot];
// Do any additional setup after loading the view.
}
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldBeRequiredToFailByGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
return YES ;//return NO 可以同时响应多个手势,但是有时会失败,return YES 能准确响应各个事件 ,点击后响应的事件为识别的第一个手势,其他手势无效
//需要继承代理协议 <UIGestureRecognizerDelegate>
}
-(void)pinch:(UIPinchGestureRecognizer *)pinch1
{
pinch1.view.transform = CGAffineTransformScale(pinch1.view.transform, pinch1.scale, pinch1.scale);
pinch1.scale = 1.0;//默认1
}
-(void)rotAction:(UIRotationGestureRecognizer *)rot
{
rot.view.transform = CGAffineTransformRotate(rot.view.transform, rot.rotation);
rot.rotation = 0;//默认0;
}
-(void)panCallBack:(UIPanGestureRecognizer *)pan
{
UIView *gestureView = (UIView *)pan.view;
CGPoint point = [pan translationInView:self.view];
gestureView.frame = CGRectMake(point.x, point.y, 200, 200);
}
static bool isFirstTap = true;
-(void)tapOneCallBack:(UITapGestureRecognizer *)tapOne
{
UIView *gestureTestView = (UIView *)tapOne.view;
if (isFirstTap) {
gestureTestView.frame = CGRectMake(100, 100,100,100);
isFirstTap = false;
}else
{
isFirstTap = true;
gestureTestView.frame = CGRectMake(100, 100, 200, 200);
}
}
-(void)tapTwoCallBack:(UIGestureRecognizer *)tapTwo
{
UIView *gestureTestView = (UIView *)tapTwo.view;
if (isFirstTap) {
gestureTestView.frame = CGRectMake(100, 100,100,100);
isFirstTap = false;
}else
{
isFirstTap = true;
gestureTestView.frame = CGRectMake(100, 100, 200, 200);
}
}
UIView *gestureTestView = [[UIView alloc]initWithFrame:CGRectMake(100, 100, 200, 200)] ;
gestureTestView.backgroundColor = [UIColor greenColor];
//开启UIVIew的事件响应
gestureTestView.userInteractionEnabled = YES;
[self.view addSubview:gestureTestView];
//添加单击手势
UITapGestureRecognizer *tapOne = [[UITapGestureRecognizer alloc]init];
//设置响应事件的点击次数
tapOne.numberOfTapsRequired = 1;
//设置点击手指的个数
tapOne.numberOfTouchesRequired = 1;
//添加事件响应函数
[tapOne addTarget:self action:@selector(tapOneCallBack:)];
//把手势添加到view上
[gestureTestView addGestureRecognizer:tapOne];
//添加双击手势
UITapGestureRecognizer *tapTwo = [[UITapGestureRecognizer alloc]init];
//点击次数
tapTwo.numberOfTapsRequired = 2;
//事件响应函数
[tapTwo addTarget:self action:@selector(tapTwoCallBack:)];
//优先响应双击事件,双击时单击事件不识别
[tapOne requireGestureRecognizerToFail:tapTwo];
//把手势添加到View
[gestureTestView addGestureRecognizer:tapTwo];
UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc]init];
[panGesture addTarget:self action:@selector(panCallBack:)];
[gestureTestView addGestureRecognizer:panGesture];
//创建缩放手势
UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc]init];
[pinch addTarget:self action:@selector(pinch:)];
// pinch.delegate = self;//设不设置代理都可以
[gestureTestView addGestureRecognizer:pinch];
//创建旋转手势
UIRotationGestureRecognizer *rot = [[UIRotationGestureRecognizer alloc]init];
[rot addTarget:self action:@selector(rotAction:)];
//rot.delegate = self;
[gestureTestView addGestureRecognizer:rot];
// Do any additional setup after loading the view.
}
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldBeRequiredToFailByGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
return YES ;//return NO 可以同时响应多个手势,但是有时会失败,return YES 能准确响应各个事件 ,点击后响应的事件为识别的第一个手势,其他手势无效
//需要继承代理协议 <UIGestureRecognizerDelegate>
}
-(void)pinch:(UIPinchGestureRecognizer *)pinch1
{
pinch1.view.transform = CGAffineTransformScale(pinch1.view.transform, pinch1.scale, pinch1.scale);
pinch1.scale = 1.0;//默认1
}
-(void)rotAction:(UIRotationGestureRecognizer *)rot
{
rot.view.transform = CGAffineTransformRotate(rot.view.transform, rot.rotation);
rot.rotation = 0;//默认0;
}
-(void)panCallBack:(UIPanGestureRecognizer *)pan
{
UIView *gestureView = (UIView *)pan.view;
CGPoint point = [pan translationInView:self.view];
gestureView.frame = CGRectMake(point.x, point.y, 200, 200);
}
static bool isFirstTap = true;
-(void)tapOneCallBack:(UITapGestureRecognizer *)tapOne
{
UIView *gestureTestView = (UIView *)tapOne.view;
if (isFirstTap) {
gestureTestView.frame = CGRectMake(100, 100,100,100);
isFirstTap = false;
}else
{
isFirstTap = true;
gestureTestView.frame = CGRectMake(100, 100, 200, 200);
}
}
-(void)tapTwoCallBack:(UIGestureRecognizer *)tapTwo
{
UIView *gestureTestView = (UIView *)tapTwo.view;
if (isFirstTap) {
gestureTestView.frame = CGRectMake(100, 100,100,100);
isFirstTap = false;
}else
{
isFirstTap = true;
gestureTestView.frame = CGRectMake(100, 100, 200, 200);
}
}
相关文章推荐
- ios技术图
- ios技术图
- IOS入门:Cocoa Touch层
- IOS关灯游戏
- IOS开发入门:Cocoa与Cocoa Touch的区别
- IOS画图
- IOS7 小技巧
- 在iOS中使用ZBar扫描二维码
- iOS 常用的判断
- IOS学习资料
- 如何在iOS中使用Block
- IOS 作业项目(3) 霓虹灯效果
- iOS ARC中CTCallCenter没用,无法监听电话的解决方案
- 自定义nagios check_load告警阀值
- 播放器适配经验总结――IOS
- iOS_笔记记载(1)
- iOS开源项目
- iOS开发代码:从文本文件中读取内容到字符串里
- [iOS开发]自定义字体(非iOS自带)以及字体垂直对齐问题(基线调整)
- iOS 7适配