iOS-webView截圖

lp.jpg

開發(fā)中如何截圖,webView為例,用法如下:

(一)截取當(dāng)前屏幕顯示的區(qū)域(設(shè)備的全屏)

代碼如下:

    CGSize size = self.view.frame.size; 
    UIGraphicsBeginImageContextWithOptions(size, NO, [UIScreen mainScreen].scale);
    [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
    viewImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    UIImageWriteToSavedPhotosAlbum(viewImage, self, nil, nil);  //保存到相冊(cè)中
(二)截取webView所有顯示內(nèi)容的區(qū)域

客戶提出相關(guān)需求,需要截圖當(dāng)前webview所展示的所有的內(nèi)容,代碼如下:

    UIScrollView *scroll = (UIScrollView *)_webView;
    CGRect frame = scroll.frame;
    CGRect frame1 = scroll.frame; // 備份frame
    frame.size.height = _webView.scrollView.contentSize.height;
    scroll.frame = frame;
  
 UIGraphicsBeginImageContextWithOptions(CGSizeMake(iChe_ViewFrame.size.width,frame.size.height), YES, 0);     //設(shè)置截屏大小
    [scroll.layer renderInContext:UIGraphicsGetCurrentContext()];
    viewImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    CGImageRef imageRef = viewImage.CGImage;
    UIImage *sendImage = [[UIImage alloc] initWithCGImage:imageRef];
    UIImageWriteToSavedPhotosAlbum(sendImage, nil, nil, nil);//保存圖片到照片庫
    
    // 恢復(fù)frame 不然滑動(dòng)沒效果
    scroll.frame = frame1;

解釋:
1、初始沒有截圖的時(shí)候,如果UIScrollView的高度不等于webView.scrollView.contentSize.height,后期截圖的結(jié)果就是圖片的高度是對(duì)的,但是只有只有當(dāng)前屏幕展示的內(nèi)容,其他展示不到的都是黑屏。
2、截圖修改了frame的高度,截圖完畢之后如果不恢復(fù)之前的高度,是看不到滑動(dòng)效果的,因?yàn)閁IScrollView高度大于你的設(shè)備的屏幕高。

注意:
為避免內(nèi)存泄漏,UIGraphicsBeginImageContextWithOptionsUIGraphicsEndImageContext需成對(duì)出現(xiàn)。

資料:
UIGraphicsBeginImageContext 和 UIGraphicsBeginImageContextWithOptions

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

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

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,922評(píng)論 25 709
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,177評(píng)論 4 61
  • #寫給18歲的自己#第二篇 親愛的Anne: 書影單是我攢了兩年的私房,而劇單是讓我“沉下去、浮上來”自我修行的秘...
    珞小六閱讀 225評(píng)論 0 0
  • 女兒班級(jí)出了紀(jì)律新規(guī)定,被老師點(diǎn)名2次的孩子家長(zhǎng),進(jìn)教課堂。當(dāng)然這個(gè)活動(dòng)是學(xué)校的特色,邀請(qǐng)家長(zhǎng)進(jìn)課堂,陪伴孩子一起...
    燕子小屋閱讀 255評(píng)論 0 0
  • 文/雪中萍 2016.4.19 星期二 晴 “媽媽,我想跟你說件事。”晚上寶貝寫完日記,走過來說,“什么...
    雪中萍閱讀 389評(píng)論 0 0

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