UIPanGestureRecognizer e UITapGestureRecognizer allo stesso tempo [ios]


Answers

non so se qualcuno è interessato a questo post, ma ho risolto il problema come il 90% utilizzando il seguente

  for(int i=0; i<[recognizer numberOfTouches]; i++){
    CGPoint pt = [recognizer locationOfTouch:i inView:recognizer.view];
    pt = [[CCDirector sharedDirector]convertToGL:pt];
    pt = [self convertToNodeSpace:pt];

   if (i==0) {
   //stuff
     }
Question

Ecco la mia piccola situazione. Sto spostando un ccsprite con uipanGesture. Posso spostarlo senza problemi, e ho un punto sullo schermo che posso scattare usando uitapgesture.

-(void)handleTap:(UITapGestureRecognizer *)recognizer{

CGPoint location = [recognizer locationInView:recognizer.view];
location = [[CCDirector sharedDirector]convertToGL:location];
location = [self convertToNodeSpace:location];

if (location.x > winSize.width * .6 && location.y <winSize.height/2) {
  NSLog(@"fire");  
}

Ho aggiunto il metodo delegato, quindi quando eseguo il panning, posso fare clic sul pulsante di attivazione: tutto funziona correttamente.

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{
  return YES;
}

Ma quando non sto panning e sparo usando l'uitapgesture, non posso eseguire il pan quando sparo ... Il motivo per cui penso che stia accadendo è perché sta registrando l'ultimo tap come recognizer.state == UIGestureRecognizerStateBegan da quando sono non panning.

Qualcuno sa come posso toccare e non registrare il rubinetto come if (recognizer.state == UIGestureRecognizerStateBegan

Ho provato if (location.x < winSize.width/2) ma non ha funzionato.