Wie erkennen wir einen Tap & Halten Sie an einem UITableViewCell
?Erkennen von Tap & Hold in UITableView-Zellen
Antwort
In iOS 3.2 oder höher können Sie verwenden UILongPressGestureRecognizer
Sie sollten wahrscheinlich behandeln die UIControlTouchDown Ereignis und je nachdem, was Sie mit „halten“ ein NSTimer Feuer, das ein Intervall zählen, da Sie die Berührung ausgelöst und ungültig beim Brennen oder Lösen der Berührung (UIControlTouchUpInside und UIControlTouchUpOutside Ereignisse). Wenn der Timer ausgelöst wird, haben Sie Ihre "& halten" erkannt.
Hier ist der Code direkt von meiner App aufgehoben. Sie sollten diese Methoden (und ein boolesches _cancelTouches-Member) zu einer Klasse hinzufügen, die Sie von UITableViewCell ableiten.
-(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];
}
Sie sollten niemals Code wie diesen verwenden self -> _ cancelTouches = YES; Anstatt einfach zu verwenden self.cancelTouches = YES; und deklarieren property private – Igor
Was ist diese Syntax "-> _"? noch nie zuvor gesehen :) –
//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. Tap-Geste subview Berührung erkennen
- 2. Erkennung von Tap in einem Bezier-Pfad
- 3. Hold-Taste - Python Schildkröte
- 4. hold-to-copy in der uiwebview-Unterklasse
- 5. Dauer eines Single-Tap und Long-Tap in Android
- 6. Unity Input.Touches wenn Hold Touch nichts tut?
- 7. Asterisk Hold Event über IAX2 und SIP
- 8. TAP globaler Ausnahme-Handler
- 9. UIImageView: Tap-Ereignis von Interface Builder hinzufügen
- 10. Groovy Entsprechung von Rubys Object # tap
- 11. List item double tap
- 12. Mobile Web Tap Hintergrundfarbe?
- 13. Animiere UICollectionViewCell auf Tap
- 14. Möglichkeit, mehrere keypress und hold-Ereignisse in jQuery auszulösen
- 15. Sende ajax so lange wie tap holded ist - wenn tap nicht gespeichert wird - don 't ajax
- 16. Doppelklick/tap Mapzoom (Android)
- 17. Umgang mit Tap-Geste in einer UICollectionView
- 18. Simulieren Single/Double Tap Swift
- 19. Perl Tap-Formatter-Junit Probleme
- 20. Rapid tap feuert keine BerührungenEnded
- 21. Intercept Tap Ereignis in gegebenem Zustand
- 22. Anwendung nicht sichtbar in Tap and Pay
- 23. Wie benutze ich beforeEach in node-tap?
- 24. Double Tap-Listener funktioniert nicht in Fragmenten
- 25. Link Tap Farbe für TTTAttributedLabel
- 26. TAP-Geste zu UIStackView hinzufügen
- 27. jQuery .tap Ereignis funktioniert nicht
- 28. Ändern der Farbe von Bar basierend auf einem Thresh Hold-Wert in D3
- 29. Erkennen von Trennungen in Sockets
- 30. Erkennen von Texteingabeelementen in JavaScript
Ich bin Dose nicht genug Experten aus dieser Antwort auf tatsächlichen Code kommen ... aber ich meine Halt durch das gleiche Verhalten in Mobile Safari, wenn Sie eine URL antippen und halten, um ein Aktionsblatt zu öffnen, um Optionen zu dieser URL anzuzeigen – JFMartin