在iOS

时间:2017-10-22 06:26:07

标签: ios swift

我正在做Swift和iOS,我有一个问题。

让我说我在ViewController1,并且在课程调用TableViewController1之后我想要一张viewDidLoad()的图片,这可能吗?

我知道可以将当前的视图转换为UIImage等,但是可以用另一种视图来做吗?

感谢任何帮助。谢谢!

修改:这是计划。我在func x()中致电ViewController1。该方法应该基本上做的是在UIImage中调用TableViewController1后返回viewDidLoad() TableViewController1个实例。这个清楚吗?

2 个答案:

答案 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定义区域。查看文档以获取进一步的步骤。

或者

See this answer for an actual method that can help you.