ios - 2 various UIPanGestureRecognizers with different directions simultaneously? -


it possible pan up, down, left , right.

recognizer 1 handles vertical pans only, recognizer 2 handles horizontal pans only. both of them linked same 1 delegate object.

recognizer 2 independent first 1 (except of 1 direction described 4 ones may chosen).

so how prevent 1 of them being executed simultaneously one?

-(void)initpangestures{ uipangesturerecognizer *pangesturerecognizer1 = [[uipangesturerecognizer alloc] initwithtarget:self                                                                 action:@selector(handlepan1gesture:)];  uipangesturerecognizer *pangesturerecognizer2 = [[uipangesturerecognizer alloc] initwithtarget:self                                                                                         action:@selector(handlepan2gesture:)] }  -(void)handlepan1gesture:(uipangesturerecognizer *)sender{ cgpoint velocity = [sender velocityinview:sender.view];  switch(sender.state) {          case uigesturerecognizerstatebegan:         if(fabs(velocity.y) > fabs(velocity.x)){             pangesturerecognizer2.enabled=yes;             pangesturerecognizer1.enabled=no;         }         break;         case uigesturerecognizerstatecancelled:          pangesturerecognizer1.enabled=yes;         break;     case uigesturerecognizerstateended:{         pangesturerecognizer1.enabled=yes;     }          break; }  if(velocity.x > 0) {     nslog(@"gesture went right"); } else if(velocity.x < 0) {     nslog(@"gesture went left"); }   }  -(void)handlepan2gesture:(uipangesturerecognizer *)sender{  cgpoint velocity = [sender velocityinview:sender.view]; switch(sender.state) {      case uigesturerecognizerstatebegan:         if(fabs( velocity.x) > fabs(velocity.y)){             pangesturerecognizer2.enabled=no;             pangesturerecognizer1.enabled=yes;          }         break;      case uigesturerecognizerstatecancelled:         pangesturerecognizer2.enabled=yes;         break;     case uigesturerecognizerstateended:          pangesturerecognizer2.enabled=yes;         break;  }   if(velocity.y > 0) {     nslog(@"gesture went down"); } else if(velocity.y < 0) {     nslog(@"gesture went up"); }   } 

also 2 diff gesture have implement delegate methods , recognise gestures.fro example have used 2 gesture simultaneously long , pan gesture

#pragma mark - uigesturerecognizerdelegate methods - (bool)gesturerecognizershouldbegin:(uigesturerecognizer *)gesturerecognizer {  return yes; }   - (bool)gesturerecognizer:(uigesturerecognizer *)gesturerecognizer shouldrecognizesimultaneouslywithgesturerecognizer:(uigesturerecognizer *)othergesturerecognizer { if ([pangesturerecognizer1 isequal:gesturerecognizer]) {      return [pangesturerecognizer2 isequal:othergesturerecognizer]; }  if ([pangesturerecognizer2 isequal:gesturerecognizer]) {      return [pangesturerecognizer1 isequal:othergesturerecognizer]; }  return no;  } 

Comments

Popular posts from this blog

Email notification in google apps script -

c++ - Difference between pre and post decrement in recursive function argument -

javascript - IE11 incompatibility with jQuery's 'readonly'? -