ios - 影子滞后于用户界面

标签 ios objective-c swift shadow quartz-core

我有大约 15 个 View ,我像这样应用 QuartzCore 阴影:

for button in buttonsArray {
    button.layer.shadowOpacity = 0.75
    button.layer.shadowColor = UIColor.blackColor().CGColor
    button.layer.shadowRadius = 2.0
    button.layer.shadowOffset = CGSize(width: 0.4, height: 1.2)
}

当我在 1 个 View 中有很多这种阴影时(如本例所示),它真的开始变慢并滞后于用户界面。
我该如何修复它,或者我还有哪些其他选择?谢谢!

最佳答案

观看 WWDC 2014 视频“适用于 iOS 应用的高级图形和动画”。

https://developer.apple.com/videos/wwdc/2014/

35:50 in ... 它讨论了为什么使用这种类型的代码生成阴影会导致 GPU 在确定阴影的形状时产生额外的屏幕外 channel 。

如果您已经知道阴影的形状,建议的解决方案是在层上也使用 shadowPath 属性...

这是一个很棒的视频。

关于ios - 影子滞后于用户界面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27311917/

相关文章:

ios - Cocoapods项目设置问题

ios - 在 iOS 中保存数据有哪些选项?

ios - 如何在 **spriteKit** 中添加 UIView?

swift - Swifter 可以用于 tvOS 应用程序吗?

ios - 使用 swift 在屏幕上拖动图像

objective-c - UITableViewCell id 中的 UISwitch 未在视觉上禁用

ios - 如何创建专门的iOS书架应用程序?

ios - 用单例更改单元格文本?

iphone - 将 subview 添加到 UIButton

swift - Swift 包中的源子目录