2011-10-26 21 views
8

Uygulamam için özel bir UIButton (UIButton alt sınıfı) oluşturdum. Bu düğmenin uygulanması sırasında, basıldığında arka plan rengini nasıl değiştiririm? Ben self.selected ve self.highlighted kontrol drawRect: (içinde dallanma çalıştılarÖzel bir UIButton'a basıldığında algılama

(o. Şu anda bir degrade arka plan çizmek için Çekirdek Grafik kullanıyorum depresyonda normale arka planı için bu. Dönerse), ancak olmak değildir drawRect çünkü hiçbir değişiklik gerçekleştiğinde dokunmatik olay çağrısında bulundu.

Herhangi bir öneri veya kod örnekleri takdir edilmektedir.

cevap

15

dokunmatik olay [self setNeedsRedraw] arayarak deneyin.


Asker bu cevaba ve aşağıdaki yorumlara dayalı bir çözüm sağladı.

Çözüm kullanılmış

: seçiciler arka plan değişikliğini gerçekleştirmek özel fonksiyonlar

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

.

+0

Arka plan rengini ayarlamak için bu dokunma olayını düğmenin uygulamasında yakalamam gerekir. –

+2

Kendinizi kendi dokunma etkinliklerine dinleyici olarak ekleyebilirsiniz. [Öz addTarget: self action: @selector (setNeedsRedraw) forControlEvents: UIControlEventTouchDown]; ' –

+1

Teşekkür ederim. Kendi kendini çalıştıran 'addTarget 'çalıştı. Gerçek çözümümüzü cevabınıza ekledim. –