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
İ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
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.
UITapGestureRecognizer UILabels üzerinde çalışır - sadece UILabel üzerinde EVET userInteractionEnabled = ayarlamanız gerekir. –
:
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.
}
, "kullanıcıInteractionEnabled = YES" için Josh Brown'ın – cynistersix
+1'in altına bakmasına bakın. Teşekkürler! – Micah