Domanda

Sto usando - (void) touchesMoved per fare cose quando mai I Invio un fotogramma specifico, in questo caso l'area di un pulsante.

Il mio problema è, ho solo voglio fare cose quando entro la cornice - non quando mi sto muovendo il dito all'interno del telaio.

Qualcuno sa come posso chiamare i miei metodi solo una volta, mentre io sono all'interno del telaio, e ancora mi consenta di richiamare ancora una volta se il rientro nella stessa TouchMove.

Grazie.

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [[event touchesForView:self.view] anyObject];

    CGPoint location = [touch locationInView:touch.view];

    if(CGRectContainsPoint(p1.frame, location))
    {
            //I only want the below to me called 
            // once while I am inside this frame
        [self pP01];
        [p1 setHighlighted:YES];
    }else {
        [p1 setHighlighted:NO];
    }
}
È stato utile?

Soluzione

È possibile utilizzare alcuni attributi per verificare se il codice è stato già chiamato quando eri entrando specifica area. Sembra che lo stato evidenziato dell'oggetto p1 (non so cosa sia) può essere appropriato per questo:

if(CGRectContainsPoint(p1.frame, location))
{
   if (!p1.isHighlighted){ // We entered the area but have not run highlighting code yet
        //I only want the below to me called 
        // once while I am inside this frame
      [self pP01];
      [p1 setHighlighted:YES];
   }
}else { // We left the area - so we'll call highlighting code when we enter next time
    [p1 setHighlighted:NO];
}

Altri suggerimenti

Simply add a BOOL che il check-in touchesMoved e ripristinare in touchesEnded

if( CGRectContainsPoint([p1 frame],[touch locationInView:self.view])) {
   NSLog (@"Touch Moved over p1");
  if (!p14.isHighlighted) {
   [self action: p1];
   p1.highlighted = YES; 
   }
  }else {
   p1.highlighted = NO;
  }

provare a utilizzare un UIButton e utilizzare il 'drag tocco entrare' di connessione in Interface Builder.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top