最初に、私はSergioに感謝したいと思います...彼の答えは私を始めましたが、私は私がそれを動作させるために書かなければならないことが分かりませんでしたコードのいくつかを共有すると思った:ここで
は今までそれが表示されなくても、ページのサムネイルを作成する方法は次のとおりです。次に
// Your width and height can be whatever you like, but if you want this to render
// off screen, you need an x and y bigger than the superview's width and height
UIWebView* webView = [[UIWebView alloc] initWithFrame:CGRectMake(largerScreenDimension, largerScreenDimension, largerScreenDimension, largerScreenDimension)];
[self.view addSubview:webView]; // UIWebViews without an assigned superview don't load ever.
webView.delegate = self; // or whoever you have implement UIWebViewDelegate
webView.scalesToFit = YES; // This zooms the page appropriately to fill the entire thumbnail.
[webView loadRequest:[NSURLRequest requestWithURL:url]];
デリゲートでこれを実装する:
最後に
- (void)webViewDidFinishLoad:(UIWebView *)webView {
UIGraphicsBeginImageContext(webView.bounds.size);
[webView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *webViewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData *thumbnailData = UIImagePNGRepresentation(webViewImage);
[webView removeFromSuperview];
}
、このサムネイルyou'lを表示しますLのようなものが必要です。私は言及しますボーナスの事のよう
thumbnailImageView.image = [UIImage imageWithData:thumbnailData];
を、私は一度に生成される複数のサムネイルを望んでいました。 objc_setAssociatedObject()
とobjc_getAssociatedObject()
を使用すると、どのwebViewがどのサムネイルをロードしているかを把握するのに非常に役立ちます。しかし、それがどのように働いたかについて詳しく説明することは、この質問の範囲を超えています。
iOSでこれを行うのが好きですか? –