0

我有一個多行UILabel,其中包含NSMutableAttributedString的文本。我想讓文本的一部分可點擊。使部分NSMutableAttributedString可點擊

如果我可以確定圍繞文本部分的CGRect,我可以使用水龍頭位置來確定它是否落入該內部CGRect,但我還沒有找到一種方法來做到這一點。

有什麼建議嗎?

+1

請說說你試過了什麼,爲什麼它不被接受。 – jpaugh

+0

我唯一需要做的就是爲整個UI標籤創建一個UIGestureRecognizer。我試圖圍繞可點擊的文本製作一個CGRect,但是我還沒有找到實現這一點的方法。 – Spencer

+0

最簡單的方法是使用帶鏈接支持的「UITextView」。這適合你嗎? – Azat

回答

0

具有u嘗試下面的例子:

NSMutableAttributedString * str = [[NSMutableAttributedString alloc] initWithString:@"Click me"]; 
[str addAttribute: NSLinkAttributeName value: @"http://www.yahoo.com" range: NSMakeRange(0, str.length)]; 
yourTextView.attributedText = str; 
+0

我需要在單擊文本時執行操作...有沒有一種方法可以使用回調函數而不是URL? – Spencer

+0

你可以通過在uitextview上設置文本鏈接代理來實現 - 不要認爲它可能在標籤上,但你應該能夠使文本視圖看起來像你的標籤 – bdalziel

+0

@bdalziel感謝這個想法,我會明天試試吧,但是我很想弄明白,我將在其餘時間專注於其他組件。哈哈 – Spencer

0

的情況下,你有沒有發現某事,你也可以嘗試ActiveLabel.swift這是一個UILabel下拉更換支持主題標籤(#),提及用Swift編寫的(@)和URL(http://)

下面是一個簡單的例子:

import ActiveLabel 

let label = ActiveLabel() 

label.text = "This is a post with a link http://github.com." 
label.handleURLTap { (url: NSURL) in 
    // do something with the url 
} 

免責聲明:我是庫的作者。

相關問題