如何提高 CALayer 动画的性能?
Posted
技术标签:
【中文标题】如何提高 CALayer 动画的性能?【英文标题】:How to improve performance of CALayer animations? 【发布时间】:2013-01-12 04:57:57 【问题描述】:在学习 Core Animation 时,我制作了一个 UIView 类别,它可以将子视图分成很多块并散开。 https://github.com/minorblend/HNTileDisappear 然而,当瓦片的数量不小时,动画的 FPS 会急剧下降。 有没有什么办法或者想法可以提高这种CALayer动画的性能?
【问题讨论】:
【参考方案1】:我想到了一些事情:
1) 在您的图层上将 shouldRasterize
设置为 YES
2) 如果可以,请不要在帧中使用小数值
3) 使图层不透明
4) 尝试在图层上设置drawsAsynchronously
属性
【讨论】:
即使图层沿路径进行动画处理,光栅化仍然有用吗?顺便说一句,我想支持 ios >= 5,所以不能使用 drawSynchronously 属性并且已经使用 rintf() 使图层帧中的所有值都为整数 不确定它是否特别有助于路径动画。我已经在常规动画中使用它,效果很好。您可以测试它是否有助于使用 Instruments。 属性名不应该是drawsAsynchronously吗? @Monobono 是的,谢谢 :) 我可能打字太快了。现在将更正答案。以上是关于如何提高 CALayer 动画的性能?的主要内容,如果未能解决你的问题,请参考以下文章
使用 CALayer 显示 CGPaths 会影响 iOS 中的性能吗?