黄岛建设厅官方网站竞价推广营销
实战需求
SwiftUI:如何获取ScrollView内容的屏幕截图?
解决方案
在本教程中,我们将把ScrollView的内容转换为UIImage。
首先,我们将任何视图转换为UIImage,然后将扩展相同的逻辑以截屏整个Scroll视图内容。
- 1、 在SwiftUI的视图上创建扩展,该扩展采用了我们需要转换为图像的部分视图的位置。我们将使用给定的框架创建一个虚拟的UIHostingViewController。从UIHostingView控制器,我们将访问UIKit的视图。
extension View { func takeScreenshot(origin: CGPoint, size: CGSize) -> UIImage {let window = UIWindow(frame: CGRect(origin: origin, size: size)) let hosting = UIHostingController(rootView: self) hosting.view.frame = window.frame window.addSubview(hosting.view) window.makeKeyAndVisible() return hosting.view.screenShot }
}
- 2、从UIKit的UIView获取图像:为此&#