如果我理解你的问题是正确的。你有两种观点
- 向用户显示的图像(即 viewA)
- 带有自定义绘图的覆盖视图(即 viewB)
如果您在 viewC 上创建另一个视图(即 viewC)addSubview viewA 和 viewB。
[viewC addSubview:viewA]
[viewC addSubview:viewB]
现在在 viewC 上尝试CGContextRef
UIImage *outputImage = [self convertViewToImage:viewC :1];
convertViewToImage 方法:
+(UIImage*)convertViewToImage:(UIView*)view:(float)ratio{
UIGraphicsBeginImageContext(view.bounds.size);
//UIGraphicsBeginImageContext(view.frame.size);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
CGImageRef imageRef = CGImageCreateWithImageInRect([viewImage CGImage], CGRectMake(0, 0, view.bounds.size.width*ratio, view.bounds.size.height*ratio));
UIImage *targetImage = [UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);
return targetImage;
}
我相信它会做到的。