2013-07-31 23 views
5

Co chcę zaimplementować, to funkcja typu dopasowywania kolumn. Mam trzy przyciski na prawej kolumnie i trzy na lewej kolumnie z kilkoma informacjami na ich temat. Chcę narysować ścieżkę od jednego przycisku po prawej stronie do dowolnego przycisku po lewej stronie, przeciągając palcem.touchesBegan: withEvent: nie jest wywoływany, gdy jest stuknięty w UIButton

Chciałbym użyć ścieżki UIBezierPath do narysowania ścieżki, a do tego zdecydowanie potrzebny jest punkt początkowy i końcowy.

Teraz problem jest w jaki sposób można wywołać touchesBegan, touchesMoved i touchesEnded metod naciskając na przyciski tak, że mogę dostać punkt początkowy i końcowy.

Inną opcją, o której myślę, jest zasłonięcie wszystkich przycisków niewidzialnym UIView i jakoś sprawdzenie, czy punkt dotknięty tym widokiem nakładki leży w którejkolwiek z ramek na guziki.

BTW Mogę zastąpić te przyciski również prostym UIImageView. Dodałem przyciski tylko po to, aby uzyskać punkty dotykowe.

Każda pomoc.

+0

http://stackoverflow.com/questions/3809397/ios-advanced-gestures-getting-swipe-direction-vector Możliwe duplikaty. –

Odpowiedz

4

utworzyć podklasę UIButton i dodać to ...

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    [super touchesBegan:touches withEvent:event]; 
    [self.nextResponder touchesBegan:touches withEvent:event]; 
} 

To będzie Ci swoje akcenty w przycisku.

2

Odznacz pole wyboru User Interaction Enabled pole wyboru UIButton. Otrzymasz wezwanie do metody touchesbegan na tym przycisku.