您的位置:首页 > 产品设计 > UI/UE

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐