2016-04-16 15 views
0

Wenn ich eine UIButton, die touchesBegan, touchesMoved und touchesEnded Methoden werden nicht aufgerufen. Ich möchte ein Ereignis ausführen, wenn eine kontinuierliche Berührung auftritt, und das Ereignis abbrechen, wenn die Berührung beendet ist.touchesBegan und touchesEnded nicht auf einem UIButton

+1

Mögliche Duplikat [touchesBegan/verschoben/endete nicht mit Xcode 6.3 Arbeit] (http://stackoverflow.com/questions/29552897/touchesbegan-moved-ended-not-working-with-xcode-6- 3) – kb920

+0

Überprüfen Sie, ob "userInteractionEnabled" auf der Schaltfläche und allen seinen Superviews auf true gesetzt ist. Dies gilt standardmäßig für die meisten "UIViews", aber es gibt einige Ausnahmen. – Hamish

+0

Für uibutton heißt das nicht –

Antwort

0

Sie können UIButton touch start und touch end mit UIButton control-Ereignissen verfolgen.

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    [self.button addTarget:self action:@selector(touchStarted:) forControlEvents:UIControlEventTouchDown]; 
    [self.button addTarget:self action:@selector(touchEnded:) forControlEvents:UIControlEventTouchUpInside]; 
    [self.button addTarget:self action:@selector(touchEnded:) forControlEvents:UIControlEventTouchUpOutside]; 
} 


- (void)touchStarted:(id)sender { 
    NSLog(@"Touch started"); 
} 

- (void)touchEnded:(id)sender { 
    NSLog(@"Touch ended"); 
}