2013-05-15 9 views
5

Ich versuche, eine Schaltfläche zu erstellen, die eine Aktion auslöst, wenn die Berührung des Benutzers irgendwo in die Schaltfläche gebracht wird (unabhängig davon, ob sie innen berühren oder von außen nach innen ziehen). Im Wesentlichen muss ich eine Möglichkeit schaffen, die Aktion auszulösen, wenn sich ein Finger in der Taste befindet.iOS UIButton Touch Drag Enter funktioniert nicht wie erwartet?

"Touch Drag Enter" in Kombination mit "Touch Down Inside" hört sich an, als würde es den Job erledigen, aber es scheint anders zu funktionieren als das, was ich brauche.

Auch würde ich bevorzugen, wenn es in Storyboard statt harten Code (wie touchesBegan/bewegt) getan werden kann, aber wenn es keinen anderen Weg gibt, ist das in Ordnung.

Antwort

0

Beim Einstellen der Verbindung in IB Touch Down sollte, was Sie suchen. Jedes Mal, wenn der Finger des Benutzers den Knopf drückt, wird die Aktion aufgerufen.

+2

Dies entspricht nicht der Anforderung von OP, dass Aktionen ausgelöst werden müssen, wenn die Schaltfläche berührt wird. –

3

Entweder müssen Sie alle Ereignisse nacheinander mit der Methode verknüpfen, die Sie beim Drücken der Taste aus IB aufrufen möchten.

ODER

Sie können Ihre Schaltfläche für UIControlEventAllTouchEvents in Ihrem Code versuchen registrieren. Hier ist ein Beispiel, das hilfreich sein könnte

[_btnRoundRect addTarget:self action:@selector(btnPressedAction) forControlEvents:UIControlEventAllTouchEvents]; 


- (void)btnPressedAction{ 
    NSLog(@"Bttn pressed"); 
} 
5

Touch drag enter wird wird nur dann aufgerufen, wenn u die Berührung in der Startsteuerung und ziehen Sie es außerhalb der Grenzen der Kontrolle und es dann in der Steuer ziehen zurück, ohne die aktuell berühren. Sie müssen also Ihre Schaltfläche ableiten und die erforderliche Funktionalität erreichen.