【问题标题】:Image animation with Core Graphics is too slow使用 Core Graphics 的图像动画太慢了
【发布时间】:2012-01-16 19:53:32
【问题描述】:

我正在使用 Core Graphics 和 CADisplayLink 创建动画。

我使用每个 CADisplayLink 循环调用将图像重绘到当前图形上下文。 这是我在每次调用时绘制图像的函数:

 - (void) drawImage {

//img is some uiimage
CGRect r = CGRectMake(0, 0, img.size.width, img.size.height);
CGImageRef i = [img CGImage];
CGContextDrawImage(context, r, i);



 }

问题是动画运行速度很慢,我相信这是因为我每次都是从头开始创建图像位图,而不是以某种方式缓存它。有没有办法缓存位图?如果有怎么办?

提前致谢。

【问题讨论】:

    标签: iphone ios animation core-animation core-graphics


    【解决方案1】:

    如果没有看到更多代码或一些分析器输出,就无法确定为什么您的代码运行缓慢。但是,您应该尝试使用UIImageView,而不是绘制图像。每次CADisplayLink 通知您时,只需更改图像视图的框架即可。

    【讨论】:

    • 另外,请注意,使用[UIImage imageNamed:...] 将为您缓存图像,而其他方法可能不会。
    • 我不想使用 UIKit 所以 UIImageView 在这里不是一个选项......我的问题似乎是我正在缩放上下文(上面的代码中没有显示)并且正在占用资源。你知道任何仅使用 CoreGraphics 的动画示例吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多