欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

iOS 對當前webView進行截屏的方法

 更新時間:2017年04月30日 11:47:39   投稿:jingxian  
下面小編就為大家?guī)硪黄猧OS 對當前webView進行截屏的方法。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

UIWebView和WKWebView的截屏有所區(qū)別:

UIWebView:

func getImage(context: ServiceExecuteContext) -> UIImage { 
    //創(chuàng)建一個基于位圖的圖形上下文并指定大小 
    UIGraphicsBeginImageContextWithOptions(context.fromViewController.webView.bounds.size, true, 0) 
    //renderInContext呈現接受者及其子范圍到指定的上下文 
    context.fromViewController.webView.layer.renderInContext(UIGraphicsGetCurrentContext()!) 
    //返回一個基于當前圖形上下文的圖片 
    let image = UIGraphicsGetImageFromCurrentImageContext() 
    //移除棧頂的基于當前位圖的圖形上下文 
    UIGraphicsEndImageContext() 
     
    //let imagRef = CGImageCreateWithImageInRect((image?.CGImage)!, context.fromViewController.webView.bounds) 
    //let newImage = UIImage.init(CGImage: imagRef!) 
    //UIImageWriteToSavedPhotosAlbum(newImage, nil, nil, nil);//保存圖片到照片庫 
    return image! 
  } 

UIGraphicsBeginImageContext()方法傳入唯一參數,是一個CGSize變量,用來指定圖形context的大小,所以獲取屏幕截圖的時候這個size該是屏幕的大小。其實了解了這個過程,就知道這個方法可以獲取任意區(qū)域的截圖,當然是必須當前頁面的一部分。你需要截取哪個view的圖像,就讓這個view的layer調用renderInContext把圖形渲染進當前圖形context。

WKWebView:

當我嘗試去截取WKWebView的圖。截圖的結果返回給我的就僅僅只是一張背景圖, 顯然截圖失敗。通過搜索StackOverflow和Google, 我發(fā)現WKWebView并不能簡單的使用layer.renderInContext的方法去繪制圖形。如果直接調用layer.renderInContext需要獲取對應的Context, 但是在WKWebView中執(zhí)行UIGraphicsGetCurrentContext()的返回結果是nil

StackOverflow提供了一種解決思路是使用UIView的drawViewHierarchyInRect方法去截取屏幕視圖。通過直接調用WKWebView的drawViewHierarchyInRect方法(afterScreenUpdates參數必須為true), 可以成功的截取WKWebView的屏幕內容

func getImage(context: ServiceExecuteContext) -> UIImage { 
     
    UIGraphicsBeginImageContextWithOptions(context.fromViewController.webView.bounds.size, true, 0) 
    for subView: UIView in context.fromViewController.webView.subviews { 
      subView.drawViewHierarchyInRect(subView.bounds, afterScreenUpdates: true) 
    } 
    //UIApplication.sharedApplication().keyWindow?.layer.renderInContext(UIGraphicsGetCurrentContext()!) 
    let image = UIGraphicsGetImageFromCurrentImageContext() 
    UIGraphicsEndImageContext() 
     
    //let imagRef = CGImageCreateWithImageInRect((image?.CGImage)!, context.fromViewController.webView.bounds) 
    //let newImage = UIImage.init(CGImage: imagRef!) 
     
    return image! 
  } 

以上這篇iOS 對當前webView進行截屏的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • iOS開發(fā)實現搜索框(UISearchController)

    iOS開發(fā)實現搜索框(UISearchController)

    這篇文章主要為大家詳細介紹了iOS開發(fā)實現搜索框,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • iOS應用開發(fā)中使用Auto Layout來適配不同屏幕尺寸

    iOS應用開發(fā)中使用Auto Layout來適配不同屏幕尺寸

    這篇文章主要介紹了iOS應用開發(fā)中使用Auto Layout來適配不同屏幕尺寸的方法,根據Xcode IDE下的實際調試步驟講解其用法,需要的朋友可以參考下
    2016-03-03
  • iOS tableView右側索引視圖狀態(tài)獲取的方法實例

    iOS tableView右側索引視圖狀態(tài)獲取的方法實例

    tableView用于顯示一個垂直滾動的單元格數(通常為可重復使用的單元格)組成的視圖,這篇文章主要給大家介紹了關于iOS tableView右側索引視圖狀態(tài)獲取的相關資料,需要的朋友可以參考下
    2021-07-07
  • iOS閱讀器與直播的控件重疊滑動交互詳解

    iOS閱讀器與直播的控件重疊滑動交互詳解

    這篇文章主要介紹了iOS閱讀器與直播的控件發(fā)生重疊時滑動交互受到影響的問題,開發(fā)中某個控件出現在其它控件上方是和你常見的情況,但是如果影響到正常的交互這就會成為大問題,下面我們來了解一下
    2022-08-08
  • iOS實現背景滑動效果

    iOS實現背景滑動效果

    這篇文章主要為大家詳細介紹了iOS實現背景滑動效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 詳解IOS中Tool Bar切換視圖方法

    詳解IOS中Tool Bar切換視圖方法

    這篇文章主要介紹了詳解IOS中Tool Bar切換視圖方法以及實例代碼分析,需要的朋友學習一下吧。
    2017-12-12
  • iOS動態(tài)驗證碼實現代碼

    iOS動態(tài)驗證碼實現代碼

    本文通過實例代碼給大家介紹了ios動態(tài)驗證碼的實現方法,代碼簡單易懂,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2018-04-04
  • iOS開發(fā)實現音頻播放功能

    iOS開發(fā)實現音頻播放功能

    本文給大家分享的是在IOS開發(fā)過程中實現音頻播放的功能,講解的十分細致,有需要的小伙伴可以參考下
    2016-03-03
  • Objective-C中使用NSString類操作字符串的方法小結

    Objective-C中使用NSString類操作字符串的方法小結

    這篇文章主要介紹了Objective-C中使用NSString類操作字符串的方法小結,文中講到了字符串的分割和拼接等一些常見的用法,需要的朋友可以參考下
    2016-01-01
  • 淺談iOS解析HTMl標簽以及開發(fā)中的一些坑

    淺談iOS解析HTMl標簽以及開發(fā)中的一些坑

    這篇文章主要介紹了淺談iOS解析HTMl標簽以及開發(fā)中的一些坑,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12

最新評論