2016-03-20 22 views
1

Sohbet uygulamasında. Sohbet çerçevesindeki metni göstermek için bir UIlabelim var. kullanıcı metin ve URL weblink gönderdiğinizde, benSohbet çerçevesindeki bir UIlabel'de metin ve URL bağlantısı nasıl yapılır

In LINE app

Yani "HAT" uygulaması gibi UILabel ile hem metin hem de URL bağlantısını göstermek istiyorum, bana bir UILabel gibi "HAT" ile metin ve URL bağlantısını yapmak için yardım edin Uygulamanın.

+0

Şimdiye kadar neler denediniz? neyin çalışmadığını gösteren bir kod var mı? –

+0

Lütfen stacktrace ve kodunu ekleyin. Soruyu iyileştirmek için [Nasıl Sorulur] 'a da bakabilirsiniz (http://stackoverflow.com/help/how-to-ask). SO'ya hoş geldiniz! –

cevap

1

DÜZENLEME: Shibin'in yanıtını gördükten sonra, URL'nin otomatik olarak algılanacağından beri dizenin bölümünün aralığını açıkça belirtmenize gerek olmadığını fark ettim, bu yüzden bu satırı ekledim.

Ayrıca, bağlantıların nasıl da stil oluşturulacağını gösteren tam bir örnek için blog gönderim, Text View Links'a da bakın.


Kullanmak isteyeceğiniz şey UILabel yerine UITextView olur; bu nedenle tıklanabilir olabilir. UILabel onu bir URL gibi stilleyebilir, ancak URL'yi açmayı desteklemez. Her iki etiket için kodu ve bir metin görünümü bulabilirsiniz:

let urlString = NSMutableAttributedString(string: "https://www.google.co.jp") 
let attributedString = NSMutableAttributedString(string: "Go to this website now: \(urlString.string)") 

// attributedString.addAttribute(NSLinkAttributeName, value: NSURL(string: urlString.string)!, range: NSMakeRange(24, urlString.length)) 

// text view 
textView.dataDetectorTypes = .Link 
textView.editable = false    
textView.attributedText = attributedString 

// label 
label.attributedText = attributedString 
+0

Teşekkürler kardeşim. UILabel yerine UITextView kullandım. Ancak URL'de tıklanabilir web Benim UITextView iç tabloView. Bana yardım et lütfen. – QuocTV

+0

@QuocTV Tablo görünümü hücresinde basit bir örnek yaptım ve işe yaradı. Sıfırdan başlamak ve neyin farklı olabileceğini karşılaştırmak isteyebilirsiniz. Hücrenin, contentView öğesinin ve metin görünümünün hepsinin "userInteractionEnabled = true" olduğundan emin olun ve metin görünümünün hücrenin contentView w/doğru çerçeve veya kısıtlamalarının bir alt görünümü olduğundan emin olun. Hiçbir şeyin üst üste gelmediğinden emin olun: 'textView.superview.bringSubviewToFront (textView)' –

+0

@QuocTV Ayrıca, net bir şeyin örtüşüp örtüşmediğini görebilmeniz için, görüntülenebilir arka plan renkleri vermeyi de deneyebilirsiniz. Eğer yardımcı olursa tüm görüşlerinizi rastgele çirkin renklere dönüştürebilecek bir yardımcı fonksiyonum var: [Çirkin] (http://koreyhinton.com/blog/ugly.html) –

0

kullanın yerine UILabel ait UITextView ve false için editable özelliğini ayarlayın. Otomatik olarak algılanacak verileri ayarlamak için dataDetectorTypes kullanın. Durumunuzda dataDetectorTypes'u .Link olarak ayarlayın.

textView.editable = false 
textView.dataDetectorTypes = .Link 
İlgili konular