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

Posted

技术标签:

【中文标题】如何在 UILabel 上创建强烈的红光效果【英文标题】:how to create a strong red glow effect on UILabel 【发布时间】:2011-11-08 15:38:30 【问题描述】:

我需要像上面那样在 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 滤镜,可能是外发光或某种组合。

那么,有没有办法通过代码来做类似的事情?

【问题讨论】:

【参考方案1】:

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

另外,如果您想创建像上面的 .psd 那样的红色发光,为什么不将其转换为 .png 并在您的应用程序中使用呢?

编辑:

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

【讨论】:

嘿,谢谢你的帮助,我需要用红光显示动态文字,png不会有帮助 @Chris Chen 我把上面的答案改了,希望对你有帮助。【参考方案2】:

如果你真的想要一个完全的控制,那么你必须画......像这样的东西:

for (int i = 0; i < SOME_NUMBER; i++)

    CGContextSetShadowWithColor(UIGraphicsGetCurrentContext(),
                                CGSizeZero,
                                i * SOME_FACTOR,
                                [UIColor redColor].CGColor);
    [text drawAtPoint...

然后用SOME_NUMBERSOME_FACTOR 进行试验。

【讨论】:

不知何故阴影没有总结,只有文字绘制

以上是关于如何在 UILabel 上创建强烈的红光效果的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iPhone 上创建圆角 UILabel?

如何在 Collection View 中给 UILabel 一个闪烁效果

如何从 UILabel 创建图像?

如何根据标签可用的高度调整 UILabel 字体大小

iOS的UILabel设置居上对齐,居中对齐,居下对齐

UILabel:2行文字缩小