在图形上下文之上渲染图层

时间:2015-02-17 16:22:16

标签: ios core-graphics

在核心Graphics中,我希望能够在不必每次重绘整个图像的情况下为UIView 绘制更新。初始图像是从CGImageRef中绘制的:

CGImageRef image = CGBitmapContextCreateImage(ctxImage);
CGContextDrawImage(context, _screenRect, image);

最初,我将新部分添加到屏幕外的上下文中,其中包含完整的图像'然后在重新绘制之前从中创建一个新的CGImageRef。

CGContextDrawImage(tmp_Context,targetRect,_section);
CGImageRef image = CGBitmapContextCreateImage(tmp_Context);
CGContextDrawImage(context, _screenRect, image);

这个问题是,在每次帧更新中,我需要将整个图像重绘到屏幕上,而不是仅以某种方式叠加这些部分。如果可能的话,这会产生很大的性能提升,但不确定如何去做。可能与CGLayer?

编辑:我一直在尝试快速更新for循环中的视图,因为我收到的小部分,问题是drawRect没有被调用来做任何更新可能是因为for循环过快而持续打断以前的电话?

drawLayer = CGLayerCreateWithContext(ctxImage, targetRect.size, nil);
                layerContext = CGLayerGetContext(drawLayer);
                CGContextDrawImage(layerContext,targetRect,ipegSection);

                CGContextDrawLayerAtPoint(currentScreen, targetRect.origin, drawLayer);
// Update the UI
                [targetView setNeedsDisplay];

1 个答案:

答案 0 :(得分:0)

你不能做(?):

CGContextDrawImage(context, targetRect, _section);

像这样你只在当前上下文中绘制你的部分,而不是在另一个上下文中绘制它然后完全重绘屏幕。