Ziel C & iOS: läuft ein timer? NSTimer/Threads/NSDate/etc
Ich arbeite auf meine erste iOS-app, und führen Sie in den ersten Haken habe ich nicht in der Lage zu finden eine gute Antwort für.
Problem: ich habe eine benutzerdefinierte UIGestureRecognizer
und haben es alle richtig verdrahtet und ich kann code ausführen, der für jede Note in der @selector
nach Anerkennung. Dieser wurde fein für die meisten Dinge, aber es ist ein wenig zu viel input für andere.
Mein Ziel: ein timer, Trigger in einem bestimmten Intervall ausgeführt, die Logik, und in der Lage sein zu kündigen dies im moment berührt werden aufgehoben.
Warum Frage ich hier: gibt Es eine Menge Möglichkeiten für die Lösungen, aber keiner hat sich als das beste zu implementieren. Bisher scheint es, wie
performSelector
(und einige Variationen dieser)NSThread
NSTimer
NSDate
- Betrieb Warteschlangen
- Ich glaube, ich fand einige andere auch...
Aus all der Forschung, in irgendeiner form zu machen, ein thread scheint der Weg zu gehen, aber ich bin ratlos, was am besten für diese situation.
Ein Beispiel einer Implementierung: ein NSPoint
genommen ist jede 0.10 Sekunden, und der Abstand zwischen dem vorherigen und dem aktuellen Zeitpunkt genommen wird. [Die Distanz zwischen jedem Punkt war gedeckt, sehr chaotisch Ergebnisse].
Den entsprechenden code:
- (void)viewDidLoad {
CUIVerticalSwipeHold *vSwipe =
[[CUIVerticalSwipeHold alloc]
initWithTarget:self
action:@selector(touchHoldMove:)];
[self.view addGestureRecognizer:vSwipe];
[vSwipe requireGestureRecognizerToFail:doubleTap];
}
...
- (IBAction)touchHoldMove:(UIGestureRecognizer *)sender {
if (sender.state == UIGestureRecognizerStateEnded) {
}
if (sender.state == UIGestureRecognizerStateBegan) {
}
//other stuff to do goes here
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie einen NSTimer
Richten es so:
Dann, wenn Sie Abbrechen möchten, tun Sie etwas wie dieses:
Beachten Sie, dass im obigen Beispiel, würden Sie brauchen, zu erklären, dass die "theTimer" Instanz von NSTimer, wo es verfügbar sein wird für beide Methoden. In dem obigen Beispiel die "0.5" bedeutet, dass der timer ausgelöst wird, zweimal pro Sekunde. Justieren Sie, wie gebraucht.
Der Vollständigkeit halber, ich füge mein Abschlussbericht über die Durchführung der hier (nicht sicher, dies ist der Weg, es zu tun, aber hier geht)
.h
.m