2013-11-11 2 views
6

Я не знаю ни одного слова для этой техники, поэтому мне не повезло найти что-то в поисковых системах.iOS UILabel использует негативный цвет фона в качестве цвета текста

Я хочу добиться эффекта, который делает UILabel использующим насыщенный цвет фона для его цвета текста (черно-белого цвета, как на картинке, будет достаточно для моей цели). Используя атрибут subtext, я мог бы раскрашивать каждую букву, но, как вы можете видеть на этой картинке, мне нужен эффект, который может привести к разным цветам для одной буквы. Мое лучшее предположение было бы растеризовать ярлык и цвет каждого пикселя, но я предполагаю, что есть лучшие способы с точки зрения производительности. Любые намеки будут оценены.

enter image description here

ответ

3

Если бы я сделать это, я бы, вероятно, создать пользовательский класс UIView с API аналогично UILabel (с только частями мне было нужно) плюс свойство, чтобы указать, какая часть текста должна быть обращена вспять ,

Затем я бы применил метод drawRect:, чтобы нарисовать текст дважды, используя две различные области отсечения. Для каждой половины я бы установил правильные цвета для текста и заливки фона.

Возможно это может быть сделано путем подкласса UILabel с одним дополнительным свойством плюс пользовательский метод drawRect:.

+0

Это очень помогло. Я предполагаю, что вы нарисуете текст с помощью метода drawWithRect: NSString и полностью избегаете использования UILabel, правильно ли я понял? – MorbZ

+0

Это правильно. – rmaddy

Смежные вопросы