2013-07-24 60 views
0

我想創建一個包含具有不同顏色文本的標籤。與此類似,如何在iOS 5.1及更低版本的UILabel中創建多色文本

enter image description here

我已經在iOS 6中使用NSMutableAttributedString

NSMutableAttributedString *text = [[NSMutableAttributedString alloc] initWithAttributedString: self.exerciseLbl.attributedText]; 
[text addAttribute: NSForegroundColorAttributeName value: [UIColor colorWithRed:(187/255.0) green:(57/255.0) blue:(38/255.0) alpha:1] range: NSMakeRange(0, 2)]; 
[self.exerciseLbl setAttributedText: text]; 

做到了這一點,但這個不會適用於iOS 5.1及以下工作。那麼我如何才能在iOS 5中實現相同的結果。

+0

使用屬性字符串http://www.cocoanetics.com/2011/01/befriending-core-text/! – rptwsthi

回答

1
/**(1)** Build the NSAttributedString *******/ 

NSMutableAttributedString* attrStr = [NSMutableAttributedString attributedStringWithString:@"Hello World!"]; 
// for those calls we don't specify a range so it affects the whole string 
[attrStr setFont:[UIFont systemFontOfSize:12]]; 
[attrStr setTextColor:[UIColor grayColor]]; 
// now we only change the color of "Hello" 
[attrStr setTextColor:[UIColor redColor] range:NSMakeRange(0,5)]; 
/**(2)** Affect the NSAttributedString to the OHAttributedLabel *******/ 
myAttributedLabel.attributedText = attrStr;` 
// Use the "Justified" alignment 
`myAttributedLabel.textAlignment = UITextAlignmentJustify;` 
+0

使用此鏈接https://github.com/AliSoftware/OHAttributedLabel –

0

自iOS 6以來,UIKit支持繪製屬性字符串,因此不需要擴展或替換。

從的UILabel:

@property(nonatomic, copy) NSAttributedString *attributedText; 

你只需要建立你的NSAttributedString。基本上有兩種方式:文字

追加塊具有相同屬性 - 每個零件創建一個NSAttributedString實例,並把它們添加到一個NSMutableAttributedString

創建一個從普通字符串屬性文本,然後添加歸結爲給定的範圍 - 找到你的號碼(或其他)的範圍,並在其上應用不同的顏色屬性。

相關問題