Methode soll immer wieder ausgeführt werden, solange Button gedrückt gehalten wird...

G

GENETIC4

Mitglied
Thread Starter
Dabei seit
01.08.2013
Beiträge
47
Reaktionspunkte
0
Guten Abend!

Ich bins wieder. :D Diesmal aber mit etwas anderem... Wie bekomme ich es hin, dass eine Methode nur dann ausgeführt wird solange der Button gedrückt wird? Die Methode soll also immer wieder ausgeführt werden, solange der Button gedrückt gehalten wird. Gibt es dafür vielleicht ein extra Touch Event?

Danke schon mal im Voraus für die vielen hilfreichen Antworten. :D

Mit freundlichen Grüßen
GENETIC4
 
Habe ich mir schon gedacht, dass das so funktioniert. Gibt es noch codeeffizientere Methoden (Methoden im Sinne von Möglichkeiten)?
 
Die Methode von Stack Overflow ist doch schon recht effizent. Du kannst das ganze natürlich auch mit den Methoden vom Interface Builder aufziehen, das sähe dann etwa so aus:

Code:
- (void)repeatingMethod {
    NSLog(@"Touch !");
}

- (IBAction)buttonTouchEnded:(id)sender {
    [_timer invalidate];
    _timer = nil;
}

- (IBAction)buttonTouchDown:(id)sender {
    _timer = [NSTimer scheduledTimerWithTimeInterval:0.3
                                              target:self
                                            selector:@selector(repeatingMethod)
                                            userInfo:nil
                                             repeats:YES];
}

Wobei timer eine @property ist und du buttonTouchEnded: dann mit Touch Up Inside und Outside verbindest, damit auch wirklich Schluss ist, wenn der Finger angehoben wird, aber im Grunde ist das ja auch nur die Stack Overflow Variante mit Interface Builder statt touchesBegan:withEvent:. Viel effizienter geht es nicht.
 
Finde ich aber wie du es jetzt hier gemacht hast wesentlich besser. Danke. :)
 
Zurück
Oben Unten