UITapGestureRecognizer 手势使用方法
2013-01-24 15:24
393 查看
写一个例子吧:
ViewController.h里
#import <UIKit/UIKit.h>
@interface ViewController :
UIViewController<UIGestureRecognizerDelegate>
@end
ViewController.m里
#import "ViewController.h"
@interface
ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super
viewDidLoad];
/*单指单击*/
UITapGestureRecognizer *singleFingerOne = [[UITapGestureRecognizer
alloc]initWithTarget:self
action:@selector(handleSingleFingerEvent:)];
singleFingerOne.numberOfTouchesRequired =
1; //手指
singleFingerOne.numberOfTapsRequired =
1; //tap次数
singleFingerOne.delegate =
self;
/*单指双击*/
UITapGestureRecognizer *singleFingerTwo = [[UITapGestureRecognizer
alloc]initWithTarget:self
action:@selector(handleSingleFingerEvent:)];
singleFingerTwo.numberOfTouchesRequired =
1;
singleFingerTwo.numberOfTapsRequired =
2;
singleFingerTwo.delegate =
self;
/*双指单击*/
UITapGestureRecognizer *doubleFingerOne = [[UITapGestureRecognizer
alloc]initWithTarget:self
action:@selector(handleDoubleFingerEvent:)];
doubleFingerOne.numberOfTouchesRequired =
2;
doubleFingerOne.numberOfTapsRequired =
1;
doubleFingerOne.delegate =
self;
UITapGestureRecognizer *doubleFingerTwo = [[UITapGestureRecognizer
alloc]initWithTarget:self
action:@selector(handleDoubleFingerEvent:)];
doubleFingerTwo.numberOfTouchesRequired =
2;
doubleFingerTwo.numberOfTapsRequired =
2;
doubleFingerTwo.delegate =
self;
//如果不加下面的话,当单指双击时,会先调用单指单击中的处理,再调用单指双击中的处理
[singleFingerOne
requireGestureRecognizerToFail:singleFingerTwo];
//双指也是如此
[doubleFingerOne
requireGestureRecognizerToFail:doubleFingerTwo];
[self.view
addGestureRecognizer:singleFingerOne];
[self.view
addGestureRecognizer:singleFingerTwo];
[self.view
addGestureRecognizer:doubleFingerOne];
[self.view
addGestureRecognizer:doubleFingerTwo];
[singleFingerOne
release];
[singleFingerTwo
release];
[doubleFingerOne
release];
[doubleFingerTwo
release];
}
//处理事件的方法:
-(void)handleSingleFingerEvent:(UITapGestureRecognizer *)sender{
if(sender.numberOfTapsRequired ==
1){
NSLog(@"单指单击");
}else
if (sender.numberOfTapsRequired ==
2){
NSLog(@"单指双击");
}
}
-(void)handleDoubleFingerEvent:(UITapGestureRecognizer *)sender{
if(sender.numberOfTapsRequired ==
1){
NSLog(@"双指单击");
}else
if (sender.numberOfTapsRequired ==
2){
NSLog(@"双指双击");
}
}
- (void)didReceiveMemoryWarning
{
[super
didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
ViewController.h里
#import <UIKit/UIKit.h>
@interface ViewController :
UIViewController<UIGestureRecognizerDelegate>
@end
ViewController.m里
#import "ViewController.h"
@interface
ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super
viewDidLoad];
/*单指单击*/
UITapGestureRecognizer *singleFingerOne = [[UITapGestureRecognizer
alloc]initWithTarget:self
action:@selector(handleSingleFingerEvent:)];
singleFingerOne.numberOfTouchesRequired =
1; //手指
singleFingerOne.numberOfTapsRequired =
1; //tap次数
singleFingerOne.delegate =
self;
/*单指双击*/
UITapGestureRecognizer *singleFingerTwo = [[UITapGestureRecognizer
alloc]initWithTarget:self
action:@selector(handleSingleFingerEvent:)];
singleFingerTwo.numberOfTouchesRequired =
1;
singleFingerTwo.numberOfTapsRequired =
2;
singleFingerTwo.delegate =
self;
/*双指单击*/
UITapGestureRecognizer *doubleFingerOne = [[UITapGestureRecognizer
alloc]initWithTarget:self
action:@selector(handleDoubleFingerEvent:)];
doubleFingerOne.numberOfTouchesRequired =
2;
doubleFingerOne.numberOfTapsRequired =
1;
doubleFingerOne.delegate =
self;
UITapGestureRecognizer *doubleFingerTwo = [[UITapGestureRecognizer
alloc]initWithTarget:self
action:@selector(handleDoubleFingerEvent:)];
doubleFingerTwo.numberOfTouchesRequired =
2;
doubleFingerTwo.numberOfTapsRequired =
2;
doubleFingerTwo.delegate =
self;
//如果不加下面的话,当单指双击时,会先调用单指单击中的处理,再调用单指双击中的处理
[singleFingerOne
requireGestureRecognizerToFail:singleFingerTwo];
//双指也是如此
[doubleFingerOne
requireGestureRecognizerToFail:doubleFingerTwo];
[self.view
addGestureRecognizer:singleFingerOne];
[self.view
addGestureRecognizer:singleFingerTwo];
[self.view
addGestureRecognizer:doubleFingerOne];
[self.view
addGestureRecognizer:doubleFingerTwo];
[singleFingerOne
release];
[singleFingerTwo
release];
[doubleFingerOne
release];
[doubleFingerTwo
release];
}
//处理事件的方法:
-(void)handleSingleFingerEvent:(UITapGestureRecognizer *)sender{
if(sender.numberOfTapsRequired ==
1){
NSLog(@"单指单击");
}else
if (sender.numberOfTapsRequired ==
2){
NSLog(@"单指双击");
}
}
-(void)handleDoubleFingerEvent:(UITapGestureRecognizer *)sender{
if(sender.numberOfTapsRequired ==
1){
NSLog(@"双指单击");
}else
if (sender.numberOfTapsRequired ==
2){
NSLog(@"双指双击");
}
}
- (void)didReceiveMemoryWarning
{
[super
didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
相关文章推荐
- IOS 使用自定义手势屏蔽按钮解决方法/UITapGestureRecognizer屏蔽Button
- IOS 使用自定义手势屏蔽按钮解决方法/UITapGestureRecognizer屏蔽Button
- UITapGestureRecognizer 手势使用方法
- IOS 使用自定义手势屏蔽按钮解决方法/UITapGestureRecognizer屏蔽Button
- IOS初级教程2:UITapGestureRecognizer手势识别的简单使用
- 奇怪的现象:touchesBegan: 与UITapGestureRecognizer手势没有人响应 以及set方法的妙用
- UIWebView 使用手势UITapGestureRecognizer
- IOS高级教程3:UITapGestureRecognizer手势识别的简单使用到精通
- ios编程——使用抽屉MMDrawerController和系统手势interactivePopGestureRecognizer冲突的解决方法
- UISwipeGestureRecognizerDirection手势上下左右方法
- iOS 关于UITapGestureRecognizer 单击与双击手势冲突的解决
- UIImageView 添加了UITapGestureRecognizer 之后,手势不响应
- iOS中添加UITapGestureRecognizer手势识别后,UITableView的didSelectRowAtIndexPath失效
- iOS中添加UITapGestureRecognizer手势识别后,UITableView的didSelectRowAtIndexPath失效
- UITapGestureRecognizer手势操作
- UIWebView 使用手势UITapGestureRecogniz
- IOS开发:添加了手势UITapGestureRecognizer,但是点击却没任何反应
- 手势和UI控件之间冲突的解决方法(比如UITapGesture和UIButton冲突,UIPanGesture和UISlider冲突)
- iOS中添加UITapGestureRecognizer手势识别后,UITableView的didSelectRowAtIndexPath失效
- 21. 手势识别之UITapGestureRecognizer