我需要如上所述在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滤镜,可能是外部发光或某种组合。
那么,代码是否有办法可以做类似的事情?
答案 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_NUMBER
和SOME_FACTOR
。