在我的应用程序中,Web视图显示在表视图的每个单元格内。为了增加响应,我们决定将网页保存为图像。所以我创建了一个不可见的Web视图,并逐个加载每个页面并在
上创建了页面的图像- (void)webViewDidFinishLoad:(UIWebView *)webView
创建图像,但偶数图像丢失,奇数图像创建两次。那就是如果我创建四个图像说image1,image2,image3,image4。第一个和第二个图像是相同的image2将丢失,然后第三个和第四个相同,image4将丢失。
有谁知道发生了什么?我怎样才能获得所有图像?
编辑:保存图片的代码
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [documentPaths objectAtIndex:0];
CGSize pageSize = webView.frame.size;
UIGraphicsBeginImageContext(pageSize);
CGContextRef resizedContext = UIGraphicsGetCurrentContext();
[[webView layer] renderInContext:resizedContext];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData* imageData = UIImageJPEGRepresentation(image, 1.0);
NSString * filName;
filName=[NSString stringWithFormat:@"%@_Potrait_%d.jpg",[currentSctionItem. titleName stringByReplacingOccurrencesOfString:@" " withString:@"_"],fileSavingAtIndex];
NSString * filePath = [documentsDir stringByAppendingPathComponent:filName];
[imageData writeToFile:filePath atomically:NO];
NSLog(@"File created At path:%@",filePath);
fileSavingAtIndex++;
if (fileSavingAtIndex>=currentSctionItem.numberOfPagesLandscape) {
//stop
}
else{
[webView loadHTMLString:[currentSctionItem potaraitHtmlAtThePage:fileSavingAtIndex] baseURL:baseURL];
}
答案 0 :(得分:0)
我通过为每个页面加载创建一个新的Web视图来修复它。这不是正确的方法,但现在可行了
if (fileSavingAtIndex>=currentSctionItem.numberOfPagesLandscape) {
}
else{
UIWebView * webVw =[[UIWebView alloc] initWithFrame:PotraitwebViewFrame];
webVw.delegate=self;
[webVw loadHTMLString:[currentSctionItem potaraitHtmlAtThePage:fileSavingAtIndex] baseURL:baseURL];
}