Как назначить NSString UIColor - PullRequest
       28

Как назначить NSString UIColor

0 голосов
/ 14 октября 2011

Есть ли способ назначить UIColor для NSString, как в

cell.textLabel.text = [UIColor grayColor];

Я пытаюсь добавить цвет для следующей строки, например:

NSString *text = @"Hello"
[text setColor:[UIColor grayColor]; // It gives error here saying it cannot assign

Есть ли другой способ назначить цвет NSString?

Ответы [ 4 ]

6 голосов
/ 14 октября 2011

NSString - это просто строка символов.У него нет цвета, шрифта, веса, размера, стиля или чего-либо еще - только символы.Вместо этого вы захотите использовать NSAttributedString .

Но имейте в виду, что NSAttributedString не является NSString - это в основном легкий контейнер, который связывает строку со словарем атрибутов и предоставляет соответствующий код для рисования.В частности, вы не можете передать NSAttributedString в API, который ожидает строку.У вас должен быть API, который принимает NSAttributedString, или вы сами рисуете строку.

1 голос
/ 14 октября 2011

Вы не можете назначить цвет для строки. Строка не имеет данных о цвете. Вы можете назначить цвет метке, например

cell.textLabel.textColor = [UIColor grayColor];

Вам нужно подождать, пока вы не отобразите строку, чтобы установить цвет. Если вам нужно, вы можете сохранить цвет в переменной типа UIColor * до более поздней версии.

0 голосов
/ 24 ноября 2011

https://github.com/AliSoftware/OHAttributedLabel

1. Выше ссылки 4 файла с github, которые вы скачиваете и помещаете в папку вашего проекта.

2. Затем #import "NSAttributedString + Attributes.h" в вашем файле .m.

3. Теперь вы можете изменить цвет строки, шрифт, размер и т. Д., Как показано ниже.

NSString *prev = @"Name: ";

NSMutableAttributedString *now = [NSMutableAttributedString  attributedStringWithString:prev];

[now setTextColor:[UIColor blueColor]];

[now setFont:[UIFont fontWithName:@"AppleGothic" size:24]];
0 голосов
/ 14 октября 2011

Вы не устанавливаете цвет на строке, вы устанавливаете его на этикетке.Строка - это просто последовательность символов - за ее отображение отвечает метка, поэтому она управляет такими вещами, как цвет.

Взгляните на ссылку на класс UILabel и найдите свойство textColor.

В вашем примере, я думаю, вы хотите:

cell.textLabel.textColor = [UIColor grayColor];
...