IOS手勢操作:點擊+滑動

來源:互聯網
上載者:User

1.手指點擊事件[html]  //單指單擊  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.手指滑動事件[html] 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");        //執行程式        [self ReadNextPage];    }        if(recognizer.direction==UISwipeGestureRecognizerDirectionRight||recognizer.direction == UISwipeGestureRecognizerDirectionUp) {                NSLog(@"swipe right");        //執行程式        [self ReadLastPage];    }    }

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.