2015-06-17 7 views
1

Я пытаюсь изменить цвет первой линии UILabels. По какой-то причине это не работает. Вот мой код:Изменить цвет первой строки UILabel

NSMutableAttributedString *text = 
[[NSMutableAttributedString alloc] 
    initWithAttributedString: label.attributedText]; 

[text addAttribute:NSForegroundColorAttributeName 
      value:[UIColor redColor] 
      range:[label.text rangeOfString:@"\n"];]; 
[label setAttributedText: text]; 

Я не вижу никаких изменений в первой строке.

+1

Какой у вас текст? –

+2

Неверное использование 'rangeOfString' ... – nburk

ответ

5

Проблема здесь

[text addAttribute:NSForegroundColorAttributeName 
     value:[UIColor redColor] 
     range:[label.text rangeOfString:@"\n"]]; 

Он окрашивает только \n

Вы должны диапазон от 0 до начала \n


Edit: Вы можете попробовать этот код (это не но должны работать)

NSRange rangeOfNewLine = [label.text rangeOfString:@"\n"]; 
NSRange newRange = NSMakeRange(0, rangeOfNewLine.location); 

[text addAttribute:NSForegroundColorAttributeName 
      value:[UIColor redColor] 
      range:newRange];