Domanda

UILongPressGesture è disponibile in iOS ver 3.2 e versioni successive. Ma sto cercando di sviluppare applicazioni per la massima compatibilità e, quindi, mira ios ver2.0

Qualcuno può per favore mi guida su come realizzare lungo gesto stampa a ios v2.0

È stato utile?

Soluzione

Per un singolo dito, è abbastanza semplice: Inizio di un timer nel metodo touchesBegan e attivare un'azione quando il timer incendi. Annulla il timer se si ottiene un touchesEnded prima che si spara. Ecco un'implementazione che utilizza il metodo performSelector:withObject:afterDelay:.

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    [self performSelector:@selector(fireLongPress)
               withObject:nil
               afterDelay:LONG_PRESS_THRESHOLD];
}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
    [NSObject cancelPreviousPerformRequestsWithTarget:self];
}

- (void)fireLongPress {
    // do what you want to do
}

Probabilmente anche voler uccidere il timer se le mosse delle dita troppo.

Con multitouch, è un po 'più complicato. Dovrete tenere traccia di quali tocco è che, e decidere cosa fare per esempio quando un dito ha premuto abbastanza a lungo, ma l'altro non è (o capire cosa UILongPressGestureRecognizer fa).

Altri suggerimenti

implementare i metodi touches... nella vista. Se una certa quantità di tempo passa tra touchesBegan:withEvent: e touchesEnded:withEvent: senza eventi touchesMoved:withEvent:, si dispone di una pressione prolungata.

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