iOS截取UIWebView整個頁面為圖片

一、 創(chuàng)建UIWebView

// 創(chuàng)建一個webView
UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT)];
webView.backgroundColor = [UIColor whiteColor];
webView.opaque = NO;
webView.delegate = self;
webView.scalesPageToFit = YES; // 頁面大小適應(yīng)屏幕
[self.view addSubview:webView];
self.webView = webView;

二、加載web鏈接

 NSURL *url = [NSURL URLWithString:@"https://www.baidu.com"];
 NSURLRequest *request = [NSURLRequest requestWithURL:url];
 [self.webView loadRequest:request];

三、在webView代理方法webViewDidFinishLoad頁面加載完成的時候,截圖

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
        UIScrollView *scroll = self.webView.subviews.firstObject;
        
        scroll.frame = scroll.superview.frame;
        CGRect frm = scroll.frame;
        frm.size.height = _webView.scrollView.contentSize.height;
        scroll.frame = frm;
        [scroll.superview layoutIfNeeded];
        // 執(zhí)行截圖
        [self screenView:scroll];
}

四、截圖方法

/// 截圖
- (void)screenView:(UIScrollView *)view
{
    // 設(shè)置截圖大小
UIGraphicsBeginImageContextWithOptions(CGSizeMake(SCREEN_WIDTH,view.frame.size.height), YES, 0);
    [view.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    CGImageRef imageRef = viewImage.CGImage;
    UIImage *sendImage = [[UIImage alloc] initWithCGImage:imageRef];
    NSLog(@"sendImage==%@",sendImage);
     //保存圖片到照片庫 (iOS10 以上記得在info.plist添加相冊訪問權(quán)限,否則可能崩潰)
   UIImageWriteToSavedPhotosAlbum(sendImage, nil, nil, nil);
}

五、 按Home鍵,到手機系統(tǒng)相冊查看截圖。完成。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容