私があなたの質問を正しく理解していれば。2つのビューがあります
- ユーザーに表示される画像(つまりviewA)
- カスタム描画を使用したオーバーレイビュー(つまり、viewB)
別のビュー(つまりviewC)を作成する場合は、viewCでaddSubviewviewAと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;
}
私はそれがそれをするだろうと信じています。