我正在使用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);
}
问题是动画运行缓慢,我相信这是因为我每次都是从头开始创建图像位图,而不是以某种方式缓存它。有没有办法缓存位图?如果是这样的话?
提前致谢。
答案 0 :(得分:0)
如果没有看到更多的代码或某些分析器输出,就无法确定为什么代码很慢。但是,您应该尝试使用UIImageView
,而不是完全绘制图像。只需在每次CADisplayLink
通知您时更改图片视图的框架。