【问题标题】:How to improve performance of CALayer animations?如何提高 CALayer 动画的性能?
【发布时间】:2013-01-12 04:57:57
【问题描述】:

在学习 Core Animation 时,我制作了一个 UIView 类别,它可以将子视图分成很多块并散开。 https://github.com/minorblend/HNTileDisappear 然而,当瓦片的数量不小时,动画的 FPS 会急剧下降。 有没有什么办法或者想法可以提高这种CALayer动画的性能?

【问题讨论】:

    标签: ios uiview core-animation calayer


    【解决方案1】:

    我想到了一些事情:

    1) 在您的图层上将 shouldRasterize 设置为 YES

    2) 如果可以,请不要在帧中使用小数值

    3) 使图层不透明

    4) 尝试在图层上设置drawsAsynchronously 属性

    【讨论】:

    • 即使图层沿路径进行动画处理,光栅化仍然有用吗?顺便说一句,我想支持 iOS >= 5,所以不能使用 drawSynchronously 属性并且已经使用 rintf() 使图层帧中的所有值都为整数
    • 不确定它是否特别有助于路径动画。我已经在常规动画中使用它,效果很好。您可以测试它是否有助于使用 Instruments。
    • 属性名不应该是drawsAsynchronously吗?
    • @Monobono 是的,谢谢 :) 我可能打字太快了。现在将更正答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-03
    • 2015-07-14
    • 2018-11-15
    • 1970-01-01
    • 2016-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多