Domanda

Nel mio progetto ho la necessità di utilizzare un UIButton (o un altro componente) per gestire gli eventi usando Long Press. Lasciatemi spiegare, dovrei fare quella mente che tengo il pulsante un timer per contare i secondi e rilascio per arresto, ho provato con la gestione di UilongPressGestureureCognizer ma non è il caso perché ricordo l'evento quando il pulsante è tenuto giù Solo se muovo il dito, ma vorrei che il timer andasse via e contasse tutto il tempo in cui il pulsante viene tenuto giù (con il dito stazionario) e smetteva di contare quando il dito viene rilasciato.

Qualcuno sa come aiutarmi? Grazie

È stato utile?

Soluzione

Usa questi due metodi per eventi pulsanti. touchDown si chiama quando si preme il pulsante e touchUp verrà chiamato quando sollevi il dito dal pulsante. Calcola la differenza di tempo tra questi due metodi. Inoltre puoi iniziare il timer in touchDown e fermati/riavvialo in touchUp.

//connect this action with Touch up inside
- (IBAction)touchUp:(id)sender {
    NSLog(@"up");
}

//connect this to tocuh down
- (IBAction)touchDown:(id)sender{
    NSLog(@"down");
}

AggiornatoNella codifica puoi scrivere in questo modo

[btn addTarget:self action:@selector(touchUp:) forControlEvents:UIControlEventTouchUpInside];
[btn addTarget:self action:@selector(touchDown:) forControlEvents:UIControlEventTouchDown];

e in xib enter image description here

Altri suggerimenti

Lo stesso che ho fatto ... come hai detto su UilongPressureurerEcognizer, non riesco a capirlo ... ma puoi scrivere il tuo codice all'interno-(void)handleLongPress:(UILongPressGestureRecognizer *)gestureRecognizer { }. Ho fatto lo stesso usando questo metodo e ho ottenuto un risultato di successo .. :). Non è nemmeno necessario aggiungere il timer, invece puoi usare ...

 UILongPressGestureRecognizer *lpgr = [[UILongPressGestureRecognizer alloc] 
                                      initWithTarget:self action:@selector(handleLongPress:)];
lpgr.minimumPressDuration = 1.0;
lpgr.delegate = self;

Penso che funzioni perfettamente ..

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