今天项目有个需求,需要对H5做截图,来分享QQ、微博、微信,要对整个H5包含的所有内容来做截图
1.首先我想到第一种的截图方法是对webview直接截图
但是这样截取出来
下面的被截断了,很显然不是我想要的图片
2.于是用了第二种方法
但是截图下来是
出来的图片比较长,是我们需要的尺寸,但是下面黑屏了,没有截取完整,有出问题,在我说第三种方法前,先来说说UIGraphicsBeginImageContextWithOptions ,这个方法第一个参数表示你截取size,也就是只截取出来图片的大小,同时我们还要用UIGraphicsGetCurrentContext 来取得上下文,这个上下文表示当前的view的size大小,所以,要想下面不黑屏,必须调整webview的size大小,但是webview是显示出来的,不可能改变size的小大,如果改变,就造成错乱了
3.我们自己建个temp UIWebview,当显示webview 调用webViewDidFinishLoad 创建一个temp UIWebview,用显示web view的contensize,来设置temp UIWebview 的frame,对这个temp UIWebview来截屏
也就完成对web view的全部截图操作