0

私のアプリでは、テーブル ビューの各セル内に Web ビューが表示されます。レスポンスを高めるために、Web ページを画像として保存することにしました。そこで、表示されないWebビューを作成し、各ページを1つずつロードして、ページの画像を作成しました

- (void)webViewDidFinishLoad:(UIWebView *)webView

イメージは作成されますが、偶数イメージが欠落し、奇数イメージが 2 回作成されます。つまり、 image1、image2、image3、image4 という 4 つのイメージを作成している場合です。1 番目と 2 番目の画像は同じで、image2 が欠落し、3 番目と 4 番目が同じで、image4 が欠落します。

何が起こっているのか誰にも分かりませんか?すべての画像を取得するにはどうすればよいですか?

EDIT:画像を保存するためのコード

    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 に答える