使用UIGraphicsGetImageFromCurrentImageContext时正确的GraphicsContext

我有以下方法,我试图做一些绘图到一个图像:

- (UIImage*) renderImage { UIGraphicsBeginImageContextWithOptions(self.size, NO, 0); CGContextRef context = UIGraphicsGetCurrentContext(); //drawing code UIImage *image = [UIGraphicsGetImageFromCurrentImageContext() retain]; UIGraphicsEndImageContext(); return [image autorelease]; } 

当我运行这段代码的时候,我注意到,比起我在UIView drawRect中简单绘制代码的时候,我受到的打击要困难得多。 我在这里绘制到错误的graphics上下文(即CGContextRef context = UIGraphicsGetCurrentContext(); )? 或者是UIGraphicsGetImageFromCurrentImageContext只是比绘制drawRect更昂贵?

主要区别在于您创build的上下文需要离屏渲染,与-drawRect中创build的上下文不同。 所以你要添加一个额外的内存到堆,直到你将释放图像。