Come rilevare un rubinetto & in attesa su un UITableViewCell
?Rilevamento Toccare e tenere premuto nelle celle UITableView
risposta
In iOS 3.2 o versione successiva è possibile utilizzare UILongPressGestureRecognizer
Probabilmente si dovrebbe gestire l'UIControlTouchDown evento e seconda di ciò che si intende per "hold", sparare un NSTimer che conterà un intervallo da quando è stata avviata la touch e invalidare momento dello sparo o rilasciando il tocco (UIControlTouchUpInside e UIControlTouchUpOutside eventi). Quando il timer scatta, hai il "tap & premuto" rilevato.
Ecco il codice sollevato direttamente dalla mia app. È necessario aggiungere questi metodi (e un membro booleano _cancelTouches) a una classe derivata da UITableViewCell.
-(void) tapNHoldFired {
self->_cancelTouches = YES;
// DO WHATEVER YOU LIKE HERE!!!
}
-(void) cancelTapNHold {
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(tapNHoldFired) object:nil];
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
self->_cancelTouches = NO;
[super touchesBegan:touches withEvent:event];
[self performSelector:@selector(tapNHoldFired) withObject:nil afterDelay:.7];
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
[self cancelTapNHold];
if (self->_cancelTouches)
return;
[super touchesEnded:touches withEvent:event];
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
[self cancelTapNHold];
[super touchesMoved:touches withEvent:event];
}
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event {
[self cancelTapNHold];
[super touchesCancelled:touches withEvent:event];
}
Non si dovrebbe mai usare un codice come questo auto -> _ cancelTouches = YES; Invece di usare solo self.cancelTouches = YES; e dichiarare proprietà private – Igor
Qual è la sintassi "-> _"? mai visto prima :) –
//Add gesture to a method where the view is being created. In this example long tap is added to tile (a subclass of UIView):
// Add long tap for the main tiles
UILongPressGestureRecognizer *longPressGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longTap:)];
[tile addGestureRecognizer:longPressGesture];
[longPressGesture release];
-(void) longTap:(UILongPressGestureRecognizer *)gestureRecognizer{
NSLog(@"gestureRecognizer= %@",gestureRecognizer);
if ([gestureRecognizer state] == UIGestureRecognizerStateBegan) {
NSLog(@"longTap began");
}
}
- 1. UITableView toccare e tenere premuto + drag and drop
- 2. ContextMenu alla spina invece di toccare e tenere premuto
- 3. UITableView toccare per deselezionare cella
- 4. iOS UITableViewCell deve tenere premuto a lungo per selezionare l'articolo
- 5. Come tenere premuto il tasto con selenio
- 6. UIButton premere e tenere premuto - ripetere l'azione fino al rilascio
- 7. Starling evento tocco AS3 premere e tenere premuto
- 8. Come implementare un tocco e tenere premuto su un UIImageView?
- 9. UITableView Rilevamento ultima cella
- 10. Aggiunta di celle a UITableView
- 11. Nascondi celle vuote in UITableView
- 12. Carica più celle di prototipo in UITableView
- 13. Rilevamento dell'ingresso IME prima dell'inserimento premuto Javascript
- 14. Forza UITableView per scorrere fino a Celle di celle
- 15. Come rimuovere direttamente le celle da UITableView?
- 16. Come rimuovere la separazione tra celle UITableView
- 17. Impossibile definire le celle prototipo in UITableView
- 18. Impostazione dati per le celle UITableView statiche
- 19. Rilevamento delle modifiche delle celle in angular.js e ng-grid
- 20. iPhone Le celle UITableView rimangono selezionate
- 21. Cambia testo in celle statiche in UITableView
- 22. Seleziona tutte le celle in UITableView
- 23. Cambiare il colore del bordo nelle celle UITableView di iPhone (non raggruppate)
- 24. Come rilevare toccare una parte chiara di UITableView?
- 25. Nascondi celle in UITableView con celle statiche e nessun arresto anomalo automatico
- 26. Rilevamento del "rimbalzo" in basso di UITableView
- 27. UITableView scorre verso l'alto quando si ricaricano le celle con le altezze delle celle modificabili
- 28. recupero dei dati di base nelle celle tableview swift
- 29. Unisci celle nelle tabelle in modalità org
- 30. qual è la differenza tra toccare e toccare in iOS
Sono lattina di non abbastanza esperto per venire da questa risposta al codice vero e proprio ... Ma io intendo per tenere la stesso comportamento in Mobile Safari quando si tocca e si tiene premuto un URL per visualizzare un foglio di azione per mostrare le opzioni relative a questo URL – JFMartin