ios - 是否可以在避免大的性能影响的同时为文本添加发光效果?

标签 ios objective-c quartz-core

我有一些需要添加光晕的文本。问题是,当添加发光效果时,我的性能会受到影响。

我有几个动画(它们一次只发生一个,没有什么花哨或复杂的)。这些动画就像改变 UIView 的 alpha 和 scale 值。

它们非常光滑!但是,当使用 Quartz Core 向屏幕上的文本添加发光时,其余动画不再那么流畅。

在我父亲的 iPhone 3GS 上,它们工作得很好!然而,在我的 iPhone 4 上,它们变慢了!由于具有 4 倍的像素,文档警告视网膜显示。但我真的需要这种发光效果!

// This work good!
    _timerLabel.shadowColor  = [UIColor darkGrayColor];
    _timerLabel.shadowOffset = CGSizeMake(0.0, 0.5);
    _timerLabel.alpha        = 1.0;

// This gets me a performance hit
_timerLabel.layer.shadowRadius  = 3;
_timerLabel.layer.shadowOpacity = 0.3;

无论如何我可以在不影响性能的情况下做到这一点吗?

编辑
// This does help some! But it's not there yet.. It still has a heavy FPS loss
_timerLabel.layer.shouldRasterize = YES;

谢谢!

最佳答案

确保您设置了 shadowPath像这样

[myView.layer setShadowPath:[[UIBezierPath 
bezierPathWithRect:myView.bounds] CGPath]];

引用:On the importance of setting shadowPath

关于ios - 是否可以在避免大的性能影响的同时为文本添加发光效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18177537/

相关文章:

ios - 在 UITableViewCell 中检测 UIImageView 上的点击

ios - 如果应用程序进入后台,如何阻止其刷新?

objective-c - 检查 url 是否有效,以便我可以将它传递给 NSURL?

ios - 如何更改 iOS 8 中选项卡栏图标的选定颜色?

ios - 设置CALayer的borderWidth属性只影响左右边框?

iphone - UI 元素可以包含在 .a 库中吗?

ios - 使用 parse 进行 ios 应用注册的电子邮件验证

objective-c - 在Objective-C中,如何打印出N个空格? (使用 stringWithCharacters)

ios - 在 CoreGraphics 中使用图像描边 CGContext 路径

ios - Xcode:移动图像(Quartzcore)+运行2个IBActions,一个紧接着另一个在1次点击中尊重时间