2011-10-26 10 views
8

Utworzono niestandardowy UIButton (podklasa UIButton) dla mojej aplikacji. W jaki sposób, w ramach tego przycisku, zmienić kolor tła, gdy zostanie naciśnięty? (Należy przywrócić to normalne tło podczas depresji. Obecnie używam rdzeń graficzny narysować tle gradientu.)Wykrywanie po naciśnięciu niestandardowego klawisza UIButton

Próbowałem rozgałęzienia w drawRect: (sprawdzanie self.selected i self.highlighted, ale nie nastąpi zmiana, ponieważ drawRect nie jest wezwał dotykowym imprezy.

Wszelkie sugestie lub próbki kodu są doceniane.

Odpowiedz

15

Spróbuj zadzwonić [self setNeedsRedraw] w przypadku dotykowym.


Asker dostarczył rozwiązanie oparte na tej odpowiedzi i komentarzach poniżej.

Rozwiązanie

używany:

[self addTarget:self action:@selector(buttonPressed) forControlEvents:UIControlEventTouchDown]; 
[self addTarget:self action:@selector(buttonDepressed) forControlEvents:UIControlEventTouchUpInside | UIControlEventTouchUpOutside | UIControlEventTouchCancel]; 

Gdzie selektory są niestandardowe funkcje, które wykonują na zmianę tła.

+0

Potrzebuję przechwycić to zdarzenie dotykowe w ramach implementacji przycisku, aby ustawić jego kolor tła. –

+2

Zawsze możesz dodać siebie jako słuchacza do swoich własnych zdarzeń dotykowych. Wypróbuj '[self addTarget: self action: @selector (setNeedsRedraw) forControlEvents: UIControlEventTouchDown];' –

+1

Dziękuję. Używanie 'addTarget' w' self' zadziałało. Dodałem moje rzeczywiste rozwiązanie do twojej odpowiedzi. –

Powiązane problemy