W jaki sposób wykryjemy dotknięcie & na UITableViewCell
?Wykrywanie Dotknij i przytrzymaj w komórkach UITableView
Odpowiedz
w iOS 3.2 lub później można użyć UILongPressGestureRecognizer
Należy prawdopodobnie obsługiwać UIControlTouchDown zdarzenie iw zależności od tego, co masz na myśli przez „trzymaj”, ogień NSTimer która będzie liczyć odstęp od zainicjowania w dotyku i unieważnić po wypaleniu lub zwalniając dotyk (UIControlTouchUpInside i UIControlTouchUpOutside zdarzeń). Po uruchomieniu timera zostanie wykryte zatrzymanie "dotknij &".
Oto kod przeniesiony prosto z mojej aplikacji. Powinieneś dodać te metody (i boolean _cancelTouches member) do klasy, którą wyprowadzasz z 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];
}
Nigdy nie należy używać takiego kodu: self -> _ cancelTouches = YES; Zamiast po prostu użyć self.cancelTouches = YES; i zadeklaruj własność prywatną – Igor
Jaka jest ta składnia "-> _"? nigdy tego nie widziałem :) –
//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 dotknij i przytrzymaj + przeciągnij i upuść
- 2. Dotknij i przytrzymaj (długie naciśnięcie)
- 3. Przeglądarka stron WPF: dotknij = kliknij, dotknij i przytrzymaj/przeciągnij = przewiń. Jak to osiągnąć?
- 4. Zaznaczone na komórkach statycznych UITableView
- 5. Wykrywanie iOS stuknij i dotknij UIView
- 6. Wyłącz przewijanie UITableView w niektórych komórkach
- 7. Wykrywanie zmian w komórkach w angular.js i ng-grid
- 8. Reaktywuj natywne wykrywanie dotknij na View
- 9. Wykrywanie przewijania UITableView
- 10. Zmiana koloru obramowania w komórkach iPhone UITableView (niezgrupowane)
- 11. Wykrywanie dolnego "odbicia" z UITableView
- 12. Elegancki sposób realizacji naciśnij i przytrzymaj ciągłe wydarzenie zdarzenia?
- 13. Starling AS3 touch naciśnij naciśnij i przytrzymaj
- 14. CGEventPost - przytrzymaj klawisz (przesunięcie)
- 15. iOS: dotknij audio i wideo z Airplay
- 16. "Dotknij" bieżącego pliku w emacs
- 17. wyłącza przeglądarkę mobilną kliknij/dotknij/dotknij pole opinii
- 18. Jak wykonać iterację w wierszach tabeli i komórkach w JavaScript?
- 19. Dotknij opcji UIImageView?
- 20. Przeprowadź pętle w komórkach i dodaj do zakresu
- 21. Automatyczne wypełnianie 0 i 0% w pustych komórkach programu Excel
- 22. Mystery padding w komórkach tabeli z obrazem
- 23. WPF: Lewy przycisk myszy kliknij i przytrzymaj manipulowanie
- 24. Dotknij/Wybierz węzeł w SceneKit (Swift)
- 25. "Dotknij" updated_at kolumna w Rails 2.3.2
- 26. UIButton naciśnij i przytrzymaj - powtarzaj czynność aż zwolnij
- 27. UITableView i Cell Reuse
- 28. UITableView i UIRefreshControl
- 29. Wykrywanie przeciągnij i upuść + wykrywanie nie działa
- 30. Niejednolita kreska przerywana w komórkach tabeli
jestem puszka nie wystarczająco eksperta pochodzić z tej odpowiedzi do rzeczywistego kodu ... ale chodzi mi o samo zachowanie trzymać w Mobilny Safari po dotknięciu i przytrzymaniu adresu URL, aby wyświetlić arkusz akcji, pokazujący opcje dotyczące tego adresu URL – JFMartin