2013-07-24 1 views
0

Я хочу создать ярлык, содержащий текст, который должен иметь разный цвет. Подобно этому,Как создать многоцветный текст в UILabel для iOS 5.1 и ниже

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]; 

Но это не будет работать для прошивки 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. Есть два основных способа:

Append куски текста с теми же атрибутами - для каждой части создать один экземпляр NSAttributedString и добавить их к одному NSMutableAttributedString

Создать приписываемое текст из простой строки, а затем добавить приписаны для заданных диапазонов - найдите диапазон вашего номера (или что-то еще) и примените к нему другой атрибут цвета.

0

Для iOS ниже 6 вы можете использовать https://github.com/AliSoftware/OHAttributedLabel. Он предоставляет категорию и подклассы, которые работали для меня. Я надеюсь, вам тоже будет полезно.