Я пытаюсь использовать этот метод, который я создал, чтобы сохранить слой UIWebView в качестве изображения.Это работает, но SVG, который я загрузил в UIView, не отображается на изображении, а только фон UIWebView.
+ (BOOL)imageFromSVGinWebView:(UIView *)theView usePNG:(BOOL)usePNG; {
UIGraphicsBeginImageContext(theView.frame.size);
[theView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *layerImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData *layerIMGData = nil;
NSString *pathComponent = nil;
if (usePNG) {
layerIMGData = UIImagePNGRepresentation(layerImage);
pathComponent = @"png";
}else {
layerIMGData = UIImageJPEGRepresentation(layerImage,1.0f);
pathComponent = @"jpg";
}
NSString *appFile = [[CCFileManagement conversionsDirectory] stringByAppendingPathComponent:String(@"img.%@",pathComponent)];
NSError *error = nil;
BOOL returnBOOL = [layerIMGData writeToFile:appFile options:NSDataWritingAtomic error:&error];
if(error != nil)
ILogPlus(@"%@",error);
return returnBOOL;
}
Итак, я загрузил SVG в UIWebView, сохранилчто UIWebView как изображение открывало изображение, а изображение не содержит SVG.Я сделал это с другими представлениями успешно, что-то другое в SVG или UIWebView.
ОБНОВЛЕНИЕ: Если я добавлю задержку, чтобы приложение подождало несколько секунд, чтобы выполнить код сохранения изображения, то оно заработало.Помещение этого кода в webViewDidFinishLoad НЕ работает.Очевидно, что webViewDidFinishLoad не учитывает SVG.