我是一個小問題的堆棧。UILabel文本爲html文本
我需要使用一個句子,其中前兩個單詞是粗體,後兩個單詞是斜體。
like I am使用和O bjective C開發人員。
如何做到這一點。目標C中可能嗎?
問候,
我是一個小問題的堆棧。UILabel文本爲html文本
我需要使用一個句子,其中前兩個單詞是粗體,後兩個單詞是斜體。
like I am使用和O bjective C開發人員。
如何做到這一點。目標C中可能嗎?
問候,
對於iOS7您可以使用此:
NSString * htmlString = @"<html><body> Some html string </body></html>";
NSAttributedString * attrStr = [[NSAttributedString alloc] initWithData:[htmlString dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } documentAttributes:nil error:nil];
UILabel * myLabel = [UILabel alloc] init];
myLabel.attributedText = attrStr;
它的工作鏈接? – 2016-06-08 16:59:40
你最好的選擇可能是用一個UIWebView來代替的UILabel和使用HTML做格式化。
[編輯]
如果你有很多人,認爲有太多的性能損失,你可以(從iOS 3.2開始)也考慮NSAttributedString,雖然這將是一個更大量的編碼。
你不能同時使用標準的UILabel實現。但是你可以做一個或另一個。
myLabel.font = [UIFont fontWithName:@"TrebuchetMS-Bold" size:18];
蘋果公司建議,少量的樣式文本的,你應該使用Web視圖,並顯示在HTML標記並用CSS格式的文本等
個人而言,我從來沒有采取建議,因爲我會考慮一個充滿Web視圖的UI,以致有點過分殺手。
有Core Text框架,如果你想多一點控制你的文本並想使用屬性字符串。
雖然這不是一條線。使用核心文本需要相當多的代碼。
我寫了一個核心文本視圖,它將顯示與文本內聯的可點擊URL鏈接,但我沒有給出任意格式支持。如果您有興趣在文本中顯示鏈接,請查看:https://github.com/jasarien/CoreTextHyperlinkView
您可能也有興趣Oriver Drobnik的富文本視圖,它也基於核心文本。據我所知,你可以餵它HTML,它會產生一個包含你的格式化文本的本地視圖。很有用。它可以在這裏找到:https://github.com/Cocoanetics/DTCoreText
你應該看看核心文本。
下面是一些有用的資源:
我寫了一個很小的名爲的THMultiPartLabel幫助我完成這種事情 - 您可以在GitHub here上找到它。這很大程度上取決於傑森對類似問題here的回答。使用這個類,你會實現你的榜樣,像這樣:
UIFont *normal = [UIFont systemFontOfSize:20];
UIFont *bold = [UIFont boldSystemFontOfSize:20];
UIFont *italic = [UIFont italicSystemFontOfSize:20];
NSArray *fonts = [NSArray arrayWithObjects: normal, bold, normal, italic, normal nil];
THMultiPartLabel *mpLabel = [[THMultiPartLabel alloc] initWithOffsetX:0 Y:0 defaultFonts:fonts];
[mpLabel updateText:@"I ", @"am using ", @"an ", @"Objective C ", "Developer", nil];
你認爲人們如何使用它來獲得更長的文本?解決方案應該是通用的,可以迎合更大的文本,但同時應該更易於使用。我並沒有對這個答案給予大拇指,因爲我們應該這樣做,但前提是這不會回答查詢,但這絕不是可接受的解決方案。對不起,但那是我的意見 – 2013-02-13 07:07:54
由於iOS 6中,您可以使用NSAttributedString用的UILabel,一個NSAttributedString採取的NSString作爲其contructors的一個參數,之後你可以指定該字符串的範圍具有特定的文本樣式。
你可以找到關於如何做到這一點在iOS 6在這裏一個很好的例子:http://weblog.invasivecode.com/post/31931916393/introduction-to-nsattributedstring-for-ios-6
如果你什麼東西向後兼容的,我強烈建議OHAttributedLabel可以在這裏找到:https://github.com/AliSoftware/OHAttributedLabel
注意:OHAttributedLabel還允許使用html標記來設置標籤文本的樣式。
不能添加兩個'UIlabel'?如果是這樣,第一個用粗體,另一個用斜體。 – 2011-04-21 12:22:17