2014-02-27 33 views
0

我有一個UITextView以下HTML,並想將它渲染成UITextView如何設置一個UITextView的文本進行加粗,而不是點擊

是我的身體的音符

<a href="/arc/item/21">food item - more item stuff</a>;` 

設我補充說:目前它顯示爲藍色並加下劃線,不可點擊。我想讓它變成粗體而不是可點擊的。我已閱讀有關linkTextAttributes的文檔,但沒有使用這一點,是有點超出我,我真的沒有看到任何簡單的方法來處理這個。我將如何渲染上面的鏈接粗體和黑色(不是藍色),並保持不可點擊的性質?

回答

5

UPDATE(使用UITextView's linkTextAttributes溶液)

self.testTextView.editable = NO; 
self.testTextView.selectable = YES; 
self.testTextView.userInteractionEnabled = NO; // workaround to disable link - CAUTION: it also disables scrolling of UITextView content 
self.testTextView.dataDetectorTypes = UIDataDetectorTypeLink; 
self.testTextView.linkTextAttributes = @{NSFontAttributeName : [UIFont boldSystemFontOfSize:14.0f], // NOT WORKING !? 
             NSForegroundColorAttributeName : [UIColor redColor]}; 

... 

self.testTextView.text = @"Lorem ipsum http://www.apple.com Lorem ipsum"; 

正如你可以在註釋中看到,我沒能新字體設置爲linkTextAttributes,雖然顏色屬性是按預期工作。

如果你能逃脫顏色屬性或某些其他文本屬性風格你的網址,你不擔心殘疾的UITextView滾動,那麼這可能是您的解決方案。


上一頁(替代解決方案)

如果你使用的情節提要/廈門國際銀行,那麼要確保你已經取消檢測 - >鏈接您的UITextView。您可以通過將其容器字體設置爲粗體字體來使鏈接變粗體。如果你想支持不同的文本/字體樣式在一個字符串對象,那麼你真的應該找NSAttributedStringNSMutableAttributedString

請參見:https://developer.apple.com/library/ios/documentation/cocoa/reference/foundation/classes/NSAttributedString_Class/Reference/Reference.html

UIFont *linkFont = [UIFont fontWithName:@"SomeBoldTypeface" size:12]; 
NSString *link = @"food item - more item stuff"; 

NSMutableAttributedString *someString = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"is my body for the note %@; let me ad", link]]; 
[someString addAttribute:NSFontAttributeName value:linkFont range:NSMakeRange(24, link.length)]; 

UITextView *textView = [[UITextView alloc] init]; 
textView.attributedText = someString; 
... 
+0

THX達米爾 - 我大概問了一個問題差。我的錯 - 我真正想要做的就是將壁球連接成粗體。不要單獨處理鏈接。有什麼辦法可以告訴它處理鏈接 - >使用linksWithAttributes加粗。我在代碼中完成這一切 - 這是其中一個原因,這是一個問題。將有數百個這些。 – timpone

+0

'linksWithAttributes':你是什麼意思?我不記得這個方法..正確/引用我,如果我錯了。 – damirstuhec

+0

thx達米爾 - 需要入睡;現在是凌晨3點。最好 – timpone

相關問題