0

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

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

4

2 回答 2

1

这听起来并不超出 iPhone 的能力范围。

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

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

于 2009-05-09T11:27:28.700 回答
0

我同意罗杰的观点。

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

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

于 2009-05-10T18:03:59.097 回答