截取当前未打开的 ViewController 的屏幕截图

Posted

技术标签:

【中文标题】截取当前未打开的 ViewController 的屏幕截图【英文标题】:Take Screenshot of ViewController that is not currently open 【发布时间】:2016-10-30 23:59:47 【问题描述】:

我正在用 Swift 编写一个应用程序。在我的应用程序中,我有一个 ViewController。上面有一个按钮,还有一个图像视图。当我按下该按钮时,我需要截取另一个 ViewController 的屏幕截图,让我在 Interface Builder 中为第二个 ViewController 定义的所有约束工作,并且视图中的代码确实加载运行。然后我将屏幕截图放在图像视图中。我找到了这个线程here,但它似乎没有使用约束。我不知道为什么。

提前感谢您的帮助!

【问题讨论】:

【参考方案1】:

UIView 现在有一个snapshot 方法来制作像这样的视图。如果您需要使用当前设备的正确约束来渲染视图控制器,请将其视图添加到视图层次结构的后面(即insertSubview(viewController.view, at: 0)),拍摄快照,然后删除视图并释放视图控制器。

【讨论】:

以上是关于截取当前未打开的 ViewController 的屏幕截图的主要内容,如果未能解决你的问题,请参考以下文章

Swift:截取 viewController 并在 Facebook 上分享

获取手机当前时间以及分辨率,使用系统键打开通知栏获取网络设置网络截取当前屏幕

嵌入 ViewController 时视图未按预期使用 AutoLayout 进行布局

Instagram 风格的相机过渡

来自 AppDelegate 的当前 viewController 崩溃/空屏

NSUserDefaults 问题(如何在启动应用程序时在需要时打开不同的 viewController)