首页 > 解决方案 > 如何在不向用户显示视图的情况下捕获整个滚动视图的图片

问题描述

我正在我的应用程序中实现打印功能,我想将屏幕图片发送到打印机 SDK。

我正在创建一个虚拟视图,在该视图上我有一个滚动视图,在这个滚动视图上我有一个列表,列出了要打印的产品列表,添加为子视图。此滚动视图的高度大于 iPad 的屏幕尺寸,因为列表很大。

我想用整个列表(产品不可见和不可见或 UIScreen 的列表)捕获整个 Scroll View 的图片。另外,我不希望用户可以看到此视图。一切都应该在后台发生。

标签: iosswiftuiscrollview

解决方案


您可以在滚动视图中渲染视图并获得其中UIImage的一个。

在下面的代码中,视图viewInScrollView是子视图,UIScrollView并且所有元素都存在于该视图中。

UIGraphicsBeginImageContext(scrollView.contentSize)      
viewInScrollView.layer.renderInContext(UIGraphicsGetCurrentContext())
var myImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()

myImage变量将具有整体的图像scrollView


推荐阅读