【问题标题】:Performance issues scaling multiple CALayers扩展多个 CALayer 的性能问题
【发布时间】:2010-10-24 22:59:43
【问题描述】:

我有两个 CALayer 子类,每个子类都有自己的 drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx 委托。它们都是简单的图层(使用 CG 路径绘制的一些单色形状),但我需要同时缩放大约 12 个实例,而且我在帧速率方面遇到了一些问题。我将所有图层标记为不透明以尝试释放一些循环,并尝试使用隐式和显式基本动画(在边界属性本身上),以及将 CA3DTransform 矩阵分配给变换属性。

有没有人知道在保持良好帧速率的同时快速调整对象大小的好方法?

【问题讨论】:

    标签: iphone objective-c calayer frame-rate


    【解决方案1】:

    这听起来并不超出 iPhone 的功能。

    一种解决方案可能是将它们呈现为图像并对其进行缩放?这(或多或少)是 CoreAnimation 会做的事情。听起来你有一个缺陷 - 也许你应该发布你的代码,人们可以查看它。

    你在哪里进行重绘,你在重绘什么?

    【讨论】:

      【解决方案2】:

      我同意罗杰的观点。

      检查您的drawLayer:inContext: 方法(或您用来绘制的任何方法)被调用的频率。一个简单的 NSLog 就可以做到这一点。如果它们不断被调用,请考虑 Roger 将其渲染为图像并对其进行缩放的想法。

      您可能必须启动性能工具才能找到您的瓶颈。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-06-07
        • 1970-01-01
        • 1970-01-01
        • 2011-06-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多