Есть ли способ изменить цвет только части строки внутри UILabel? - PullRequest
0 голосов
/ 27 октября 2009

Скажем, я хотел, чтобы первые шесть символов были черными, а следующие шесть - синим, а затем последние 20 символов - черным UILabel. Это возможно? Спасибо!

Ответы [ 5 ]

3 голосов
/ 27 октября 2009

В Big Cocoa вы должны использовать NSAttributedString в NSTextField или NSTextView. В Cocoa Touch вы используете UIWebView для отображения расширенного текста.

1 голос
/ 27 октября 2009

Zynga проделала для вас много тяжелой работы, посмотрите Шрифт на GitHub.

0 голосов
/ 10 мая 2011

Дайте TTTAttributedString попробовать. Это вставная замена для UILabel, которая представляет NSAttributedStrings как чемпион.

0 голосов
/ 27 октября 2009

Как сказал Даррен, NSAttributedString не поддерживается на iPhone, но вы можете использовать UIWebView.

Другим возможным решением может быть отрисовка текста с использованием метода -drawAtPoint:withFont: NSString (или аналогичного). Вы можете создать подкласс UILabel и сделать рисунок в -drawRect:.

Сначала установите черный цвет и нарисуйте первые шесть символов. Обратите внимание на ширину, которую возвращает -drawAtPoint:withFont:, и используйте ее для вычисления начальной точки для следующих шести символов. Измените цвет, нарисуйте эти символы, а затем повторите то же самое для оставшейся части строки.

Обратите внимание, что -drawAtPoint:withFont: не делает разрывов строк и тому подобное, поэтому это может быстро усложниться, чем я описал.

Посмотрите на дополнения NSString UIKit .

0 голосов
/ 27 октября 2009

Вы хотите NSAttributedString.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...