IOS手势操作:点击+滑动

来源:互联网 发布:ios 淘宝详情页 编辑:程序博客网 时间:2024/04/30 11:41

1.手指点击事件

//单指单击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(@"双指双击");    }}


2.手指滑动事件

UISwipeGestureRecognizer *recognizer;        recognizer = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(handleSwipeFrom:)];        [recognizer setDirection:(UISwipeGestureRecognizerDirectionRight)];    [[self view] addGestureRecognizer:recognizer];    [recognizer release];    recognizer = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(handleSwipeFrom:)];        [recognizer setDirection:(UISwipeGestureRecognizerDirectionLeft)];    [[self view] addGestureRecognizer:recognizer];    [recognizer release];        recognizer = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(handleSwipeFrom:)];        [recognizer setDirection:(UISwipeGestureRecognizerDirectionUp)];    [[self view] addGestureRecognizer:recognizer];    [recognizer release];                recognizer = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(handleSwipeFrom:)];    [recognizer setDirection:(UISwipeGestureRecognizerDirectionDown)];    [[self view] addGestureRecognizer:recognizer];    [recognizer release];


-(void)handleSwipeFrom:(UISwipeGestureRecognizer *)recognizer

{

    

    if(recognizer.direction==UISwipeGestureRecognizerDirectionLeft||recognizer.direction==UISwipeGestureRecognizerDirectionDown) {

        

        NSLog(@"swipe left");

       //执行程序

        [selfReadNextPage];

    }

    

    if(recognizer.direction==UISwipeGestureRecognizerDirectionRight||recognizer.direction == UISwipeGestureRecognizerDirectionUp) {

        

        NSLog(@"swipe right");

       //执行程序

        [selfReadLastPage];

    }

    

}


原创粉丝点击