美文网首页iOS菜鸟联盟
如何对WKWebView截屏生成的长图拼接其他视图。

如何对WKWebView截屏生成的长图拼接其他视图。

作者: 走向菜鸟的菜鸟 | 来源:发表于2018-03-31 17:28 被阅读32次

延伸:如何在对WKWebView截屏之后的图片顶部或底部进行添加视图?

1️⃣:如果添加的视图是单纯的一张图片(将img1添加到img2的顶部):

```

// 定义拼接后图片的宽度

CGFloat w = img1.size.width;

// 定义拼接后图片的高度

CGFloat h = img1.size.height + img2.size.height;

// 根据size定义画布大小,分辨率,开始绘制

UIGraphicsBeginImageContextWithOptions(CGSizeMake(w, h), false, [UIScreen mainScreen].scale);

// 将img1先绘制到画布上

[img1 drawInRect:CGRectMake(0, 0, img1.size.width, img1.size.height)];

// 再讲img2绘制到画布上,位置在img1的下方

[img2 drawInRect:CGRectMake(0, img1.size.height, img2.size.width, img2.size.height)];

// 通过画布获得图片

UIImage *fullImage = UIGraphicsGetImageFromCurrentImageContext();

// 结束绘制

UIGraphicsEndImageContext();

```

2️⃣:如果添加的视图是一个自定义的视图view:

思路:先将视图view添加到webView的顶部,在对WKWebView进行截屏。

```

// 视图添加到webView的底部,设置底部的偏移为视图的高度

_webView.scrollView.contentInset = UIEdgeInsetsMake(0, 0, img.size.height, 0);

// 视图添加到webView的顶部,设置顶部的偏移为视图的高度

// _webView.scrollView.contentInset = UIEdgeInsetsMake(img.size.height, 0, 0, 0);

// 设置放在底部的frame

CustomerView *view = [[CustomerView alloc] initWithFrame:CGRectMake(0, _webView.scrollView.contentSize.height, _webView.bounds.size.width, img.size.height)];

// 设置放在顶部的frame

// CustomerView *view = [[CustomerView alloc] initWithFrame:CGRectMake(0, -img.size.height, _webView.bounds.size.width, img.size.height)];

// 添加到webView的scrollView上

[_webView.scrollView addSubview:view];

```

截屏代码修改:

相关文章

网友评论

    本文标题:如何对WKWebView截屏生成的长图拼接其他视图。

    本文链接:https://www.haomeiwen.com/subject/upxncftx.html