如果我理解你的問題的權利。你有兩種觀點
- 其顯示到用戶的圖像(即viewA)
- 與自定義繪製(即viewB)疊加視圖
如果你創建另一個視圖(即viewC)addSubview viewA上的viewA和viewB。
[viewC addSubview:viewA]
[viewC addSubview:viewB]
現在嘗試CGContextRef上viewC
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;
}
我相信它會做到這一點。
哦。那很棒。我沒有實施整個方法。我只是將'[layer drawInContext:ctx]'改爲'[render renderInContext]',現在覆蓋圖被正確地繪製在圖像上。因此,我創建了CGContextRef ctx,然後'[image drawInRect:CGRectmake(0.f,0.f,image.size.width,image.size.height)]',然後'[overlayView.layer renderInContext:ctx]'。非常感謝。 – BartoNaz
:-)樂於幫助。 –