如何在UILabel上创建强烈的红色发光效果

时间:2011-11-08 15:38:30

标签: iphone ios ipad uilabel quartz-graphics

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 个答案:

答案 0 :(得分:2)

我不确定你在问什么,但我认为这会有所帮助:IPhone Text Glow Effect

此外,如果你想创建一个像上面的.psd一样的红色光芒,为什么不将它转换为.png并在你的应用中使用它?

编辑:

我刚从iTunes上的Brad Larson's Advanced iPhone Development Courses找到了解决问题的方法。你必须在Brad Larson's个人资料下载课程笔记(你必须让Voodoo Pad打开它们)然后去进入“计划”下的Quartz 2D Drawing笔记。然后你必须下载名为“QuartzExample”的示例代码 希望如果您还没有找到解决方案,这会帮助您。

答案 1 :(得分:1)

如果你真的想要一个完全控制,那么你必须绘制...像:

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

然后尝试SOME_NUMBERSOME_FACTOR