Ich möchte eine Geste hinzufügen, die nur ausgelöst wird, wenn eine Person für eine Sekunde oder so gedrückt wurde. Kein Tippen, sondern langes Drücken. Wenn ich uilongpressgesture- recognizer verwende, feuert es weiter, bis ich meinen Finger loslasse. Wie kann ich das umgehen?uilongpressgesture_recognizer Feuer nur einmal
3
A
Antwort
5
Set minimumPressDuration
beim Erstellen und fügen Sie Geste als unten:
UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc]
initWithTarget:self action:@selector(handleLongPress:)];
longPress.minimumPressDuration = 1.0;
Schreiben Sie Ihren Code in UIGestureRecognizerStateEnded
Zustand wie folgt:
-(void)handleLongPress:(UILongPressGestureRecognizer *)Gesture{
if (Gesture.state == UIGestureRecognizerStateEnded) {
//Do any thing after long press ended,which will be 1.0 second as set above
}
else if (Gesture.state == UIGestureRecognizerStateBegan){
}
}
+0
Danke funktioniert wie ein Zauber. – TheHellOTrofasdasd
0
Eingestellter Wert von minimumPressDuration
Eigenschaft von UILongPressGestureRecognizer
.
0
Lange Pressverfahren wird einmal aufgerufen, wenn die Schaltfläche Zustandsänderung (Begann, Ende) Wenn Sie etwas erreichen wollen, dann tun Sie wie folgt.
//MARK:Button tap events
- (void)btnLongPress:(UILongPressGestureRecognizer*)gesture{
switch (gesture.state) {
case UIGestureRecognizerStateBegan:
{
//tmrForPoint is timer
tmrForPoint = [NSTimer timerWithTimeInterval:0.5 target:self selector:@selector(btnAddTap) userInfo:nil repeats:YES];
NSRunLoop * theRunLoop = [NSRunLoop mainRunLoop];
[theRunLoop addTimer:tmrForPoint forMode:NSDefaultRunLoopMode];
}
break;
case UIGestureRecognizerStateEnded:
{
[tmrForPoint invalidate];
tmrForPoint = nil;
}
break;
default:
break;
}
}
//Call this method every 0.5 Second
-(void)btnAddTap{
NSLog("Method called")
}
Verwandte Themen
- 1. Feuer jquery .animate oninput nur einmal
- 2. jquery Wegpunkte Feuer einmal
- 3. Feuer diese Funktion einmal
- 4. $ beobachten mehrere Attribute gleichzeitig und Feuer Callback nur einmal
- 5. Mausrad Scroll Ereignis Feuer nur einmal pro Scroll-Sitzung
- 6. Feuer jquery beim Erreichen der Unterseite der Seite (nur einmal)
- 7. Limit ‚Mausrad‘ Delta Feuer einmal pro Scroll
- 8. C# One Time (Feuer einmal) Veranstaltungen Umsetzung
- 9. ScheduledExecutorService feuert nur einmal
- 10. Schleife nur einmal ausgelöst
- 11. Swift UIAlertController Feuer einmal pro Zeile Textfeld bearbeiten
- 12. jQuery QTIP erscheint nur einmal
- 13. MutationObserver Feuer nur beim ersten Wechsel
- 14. FileSystemWatcher - nur einmal das Änderungsereignis einmal ausgelöst?
- 15. onPreviewframe nur einmal aufgerufen
- 16. layoutAnimation funktioniert nur einmal
- 17. RecyclerView.onBindViewHolder nur einmal aufgerufen
- 18. AuthorizeAttribute nur einmal aufgerufen
- 19. Einfügen Einträge nur einmal
- 20. jQuery - Nur einmal tun
- 21. Run setUp nur einmal
- 22. onDataChanged nur einmal aufgerufen?
- 23. Jquery nur einmal klicken
- 24. Timer nur einmal verwenden
- 25. Wie nur einmal
- 26. Funktionen, die nur einmal
- 27. Segue funktioniert nur einmal?
- 28. Einzelklick funktioniert nur einmal
- 29. WCSession funktioniert nur einmal
- 30. mLayout.addView() funktioniert nur einmal
Welchen Status der Geste verwenden Sie, um dies zu sehen? Wenn Sie 'GestenRecognizer.State' einschalten und nur nach dem Zustand' .Ended' suchen, wird es nur einmal pro langer Betätigung (am Ende der langen Betätigung) erscheinen. – keithbhunter