2011-03-05 24 views
17

UILabel var ve bir dokunuşta tepki vermek istiyorum. Etiketin üstüne bir düğme koymayı denedim, bu sayede düğme ile etkileşimde bulunabiliyordum. Ancak, düğme tamamen şeffaf olamaz, değil mi? Düğmenin bir alfa değerini 0,02'ye ayarlayabilirdim, ancak arka planda hala görülebilir. Bunu nasıl çözebilirim? Belki özellikleri tamamen görünmez kılmak için başka bir şekilde ayarlayabilir miyim? Yoksa başka bir çözüm var mı?UILabel dokunulabilir hale getirme

cevap

50

İlk olarak, neden sadece bir düğme kullanın ve düğme başlığını etiketin içeriğine göre ayarlamayın?

Bunu yapamaz/yapmazsanız, etikete userInteractionEnabled = YES ayarlayabilir ve ardından etikete bir hareket tanıtıcısı ekleyebilirsiniz. Swift ise

+0

, "kullanıcıInteractionEnabled = YES" için Josh Brown'ın – cynistersix

+4

+1'in altına bakmasına bakın. Teşekkürler! – Micah

7

Bunu genelde:

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(pushAction)]; 
[myLabel addGestureRecognizer:tap]; 

o etiket ile çalışıp çalışmadığını bilmiyorum, ama sonra sadece aynı rect'in ile şeffaf UIView yapmak ve üstüne koydu.

UIView *tapView = [[UIView alloc] initWithFrame:myButton.frame]; 

Ve addGestureRecognizer-yönteminde "Göster'e dokunun" koyun:


Tamam, ben kontrol, sadece UIView çalışır, ama sonra bunu.

+10

UITapGestureRecognizer UILabels üzerinde çalışır - sadece UILabel üzerinde EVET userInteractionEnabled = ayarlamanız gerekir. –

8

:

label.userInteractionEnabled = true 
let gestureRecognizer = UITapGestureRecognizer(target: self, action: Selector("labelPressed")) 
label.addGestureRecognizer(gestureRecognizer) 

Eylem tıklama alın:

func labelPressed(){ 
    print("Label pressed") 
    //Your awesome code. 
} 
İlgili konular