缩放多个CALayer的性能问题

时间:2009-05-09 02:06:19

标签: iphone objective-c calayer frame-rate

我有两个CALayer子类,每个子类都有自己的drawLayer:(CALayer *)图层inContext:(CGContextRef)ctx delegate。它们都是简单的层(用CG路径绘制的一些单色形状),但我需要同时扩展大约12个实例,而且我在帧率方面存在一些问题。我将所有图层标记为不透明以尝试释放一些周期,并尝试使用隐式和显式基本动画(在bounds属性本身上),以及将CA3DTransform基质指定给transform属性。

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

2 个答案:

答案 0 :(得分:1)

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

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

你在哪里进行重绘以及你在重绘什么?

答案 1 :(得分:0)

我同意罗杰的意见。

检查调用drawLayer:inContext:方法(或用于绘制的任何方法)的频率。一个简单的NSLog可以实现这一点。如果他们被不断调用,请考虑罗杰关于渲染图像并缩放图像的想法。

您可能需要启动性能工具才能找到瓶颈。