2013-09-08 17 views
12

iOS geliştirmede yeniyim. Bu soruların çoktan sorulup sorulmadığını bilmiyorum, Yığın akışında çözüm aramayı denedim ama sonuç alamadım.UILabel'ın belirli bir bölümündeki (altyazı) muslukları nasıl algılayabilirim?

Soru:

Ben metinle myLabel denilen bir UILabel: kullanıcı sadece "Click dokunduğunda

Şimdi problem ben bir eylem gerçekleştirmek istediğiniz edilir "geçmek için burayı tıklayın" ".

UITapGestureRecognizer'u nasıl kullanacağımı biliyorum, ancak tüm UILabel yanıtını veriyor. Sadece "Tıkla" dizesinde kullanıcının ne zaman çalıştığını algılamak mümkün mü?

+2

Yakından [bunda olası kullanışlı cevaplar bulabilirsiniz: Eğer genişliğe sahip kez kelime karşılaştırarak aday "Click" eğer

, sen ve musluk yeri kontrol edebilirsiniz ilgili (eğer yinelenmiyorsa) soru] (http://stackoverflow.com/questions/1256887/clickable-links-in-uilabel). –

cevap

5

"Tık" kelimesinin olup olmadığını görmek için dokunma yerini kontrol edebilirsiniz. Bu tamamen doğru olmayabilir ve etiketinizdeki metni değiştirirseniz kırılabilir.

CGPoint location = [gesture locationInView:gesture.view]; 

Bu görünümde jest yerini alır: Önce neyi kullanarak tıklama yerini almak olduğunu yapabileceğini

.

UILabel *sizeLabel = //create label with same font. 
[sizeLabel setText:@"Click"]; 
float width = [sizeLabel sizeThatFits:CGSizeMake(MAXFLOAT,MAXFLOAT)].width; 

:

Bunu aldıktan sonra, kelimenin boyutuna sahip olabilir ya olduğu gibi boyutunu almak için sabit kodlanmış "Click" ya da jest etikete benzer bir etiket oluşturabilirsiniz Bunu yapmak için gerçek etiketi oluştururken ve bu genişliği statik bir değişkende saklayabilirsiniz, böylece yalnızca bir kez yapmanız gerekir ve fazladan bir etiket oluşturmanız gerekmez (örneğin, gerçek etiketinizin metnini @ değerine ayarlamak için). ", Genişliğini alın ve ardından gerçek metne ayarla" yı tıklayın.

if (location.x < width) { 
    //Put your tap code in here. 
} 
+0

teşekkürler ... Bunu deneyeceğim .. –

+0

[UILabel', UITapGestureRecognizer] ile bunu nasıl yapacağımı gösteren [http://stackoverflow.com/a/29352519/168594] [burada cevabımda tam bir örnek var] 've NSAttributedString' - alt sınıflar gerekli değildir. – zekel

İlgili konular