0

在我的应用程序中,表格视图的每个单元格内都会显示一个 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]; 
        }
4

1 回答 1

0

我通过为每个页面加载创建一个新的 Web 视图来修复它。这不是正确的方法,但现在可以了

if (fileSavingAtIndex>=currentSctionItem.numberOfPagesLandscape) {

            }
            else{
                UIWebView * webVw =[[UIWebView alloc] initWithFrame:PotraitwebViewFrame];
                 webVw.delegate=self;
                [webVw loadHTMLString:[currentSctionItem potaraitHtmlAtThePage:fileSavingAtIndex] baseURL:baseURL];
            }
于 2013-02-08T03:50:50.847 回答