我正在做Swift和iOS,我有一个问题。
让我说我在ViewController1
,并且在课程调用TableViewController1
之后我想要一张viewDidLoad()
的图片,这可能吗?
我知道可以将当前的视图转换为UIImage等,但是可以用另一种视图来做吗?
感谢任何帮助。谢谢!
修改:这是计划。我在func x()
中致电ViewController1
。该方法应该基本上做的是在UIImage
中调用TableViewController1
后返回viewDidLoad()
TableViewController1
个实例。这个清楚吗?
答案 0 :(得分:1)
UIView有一个扩展,您可以在viewDidAppear()中使用它来制作屏幕截图
extension UIView{
var screenshot: UIImage{
UIGraphicsBeginImageContextWithOptions(bounds.size, false, UIScreen.main.scale)
let context = UIGraphicsGetCurrentContext();
self.layer.render(in: context!)
let screenShot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return screenShot!
}
}
答案 1 :(得分:0)
你可以拍摄一张"截图"所以可以说屏幕上绘制的内容。 因此,如果您的视图控制器当前在屏幕上,您可以从任何事件/处理程序捕获它。
使用UIGraphicsBeginImageContext
定义区域。查看文档以获取进一步的步骤。
或者