как создать эффект сильного красного свечения на UILabel - PullRequest
5 голосов
/ 08 ноября 2011

enter image description here

Мне нужно реализовать эффект внешнего свечения на UILabel (или CATextLayer), как указано выше.Я знаю, чтобы создать эффект свечения на тексте, мне нужна тень со смещением (0,0).Я коснулся уровня quartz2D, вот код, который я использую:

    _backgroundDownLabel.layer.shadowColor = self.glowColor.CGColor; // red
    _backgroundDownLabel.layer.shadowOffset = CGSizeMake(0, 0);
    _backgroundDownLabel.layer.shadowOpacity = 1;
    _backgroundDownLabel.layer.shadowRadius = self.glowAmount; // tried 1-10
    _backgroundDownLabel.layer.masksToBounds = NO;

Проблема: когда я использую цвет RGB (1,0,0) в качестве цвета тени для создания красногосвечение, результат слишком тонкий, что означает, что красное свечение недостаточно сильное.С другой стороны, клиент-дизайнер прислал мне PSD-файл, в котором цвет свечения яркий и сильный.Я предполагаю, что это не простое свечение, а какой-то фильтр Photoshop, может быть внешнее свечение или какая-то комбинация.

Итак, есть ли способ с помощью кода, что я могу сделать что-то подобное?

Ответы [ 2 ]

2 голосов
/ 08 ноября 2011

Я не уверен, что именно вы спрашиваете, но я думаю, что это поможет: Эффект свечения текста iPhone

Кроме того, если вы хотите создать красное свечение каквыше .psd, почему бы просто не преобразовать его в .png и использовать в своем приложении?

РЕДАКТИРОВАТЬ:

Я только что нашел решение вашей проблемы из Продвинутых курсов по разработке iPhone Брэда Ларсона на iTunes U. Вам нужно будет скачатьКурс записывается в профиле Брэда Ларсона (для их открытия требуется Voodoo Pad) и переходите к заметкам Quartz 2D Drawing в разделе «Расписание».Затем вам нужно будет загрузить пример кода под названием «QuartzExample».
Надеюсь, это поможет вам, если вы еще не нашли решение.

1 голос
/ 08 ноября 2011

Если вы действительно хотите полный контроль, тогда вам нужно нарисовать ... Что-то вроде:

for (int i = 0; i < SOME_NUMBER; i++)
{
    CGContextSetShadowWithColor(UIGraphicsGetCurrentContext(),
                                CGSizeZero,
                                i * SOME_FACTOR,
                                [UIColor redColor].CGColor);
    [text drawAtPoint...
}

А затем поэкспериментируйте с SOME_NUMBER и SOME_FACTOR.

...