UILabel прозрачность цвета текста с тенями слоя на месте? - PullRequest
0 голосов
/ 04 января 2012

У меня есть UILabel, к которому я пытаюсь применить полупрозрачный градиент в качестве цвета. Например, в моем подклассе UILabel я пытаюсь установить цвет градиента следующим образом:

self.textColor = [UIColor colorWithPatternImage:someTransparentGradient];

Однако, возясь с этим, я обнаружил, что UILabel, похоже, не может рисовать с прозрачностью , когда тени слоя находятся на месте . Я попытался установить цвет текста, чтобы очистить:

self.textColor = [UIColor clearColor];

но текст оказался белым. Идеи?

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

Ответы [ 2 ]

3 голосов
/ 04 января 2012

Если бы вы создали перо UILabel через и установили textColor в initWithFrame, вы не получите желаемого результата.

В подклассе UILabel напишите initWithCoder иустановите цвет.

-(id)initWithCoder:(NSCoder *)aDecoder
{
    self = [super initWithCoder:aDecoder];
    if (self) {
        // Initialization code
        self.textColor = [UIColor clearColor];
    }
    return self;
}

Редактировать

Смотрите, это снимок экрана с заданным по умолчанию (серым) фоном.

enter image description here

А это скриншот с белым фоном

enter image description here

Пожалуйста, скачайте пример приложения и попробуйте его.

1 голос
/ 03 февраля 2012

Я обычно не принимаю свои собственные ответы, но в этом случае я должен. Это похоже на ошибку. Всякий раз, когда тени слоя применяются к UILabel, прозрачность текста больше не поддерживается. Я подам радар.

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