屏幕截图中的所有内容

时间:2016-03-24 13:00:38

标签: ios swift

我试图截取iPhone显示屏上显示的绝对所有内容,就像按住主页+电源按钮一样。我目前要截取的代码是:

func screenShotMethod() {

    //hide UI
    buttonTrigger.hidden = true

    //take screenshot
    let layer = UIApplication.sharedApplication().keyWindow!.layer
    let scale = UIScreen.mainScreen().scale
    UIGraphicsBeginImageContextWithOptions(view.frame.size, false, scale);

    layer.renderInContext(UIGraphicsGetCurrentContext()!)
    let screenshot = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()

    UIImageWriteToSavedPhotosAlbum(screenshot, nil, nil, nil)

    //show UI
    buttonTrigger.hidden = false
}

关键在于我正在使用相机并将照片放在它检测到的任何脸部上,而将其保存到相机胶卷的最简单方法就是隐藏UI并截屏。然而,通过这种方法,我得到了正确位置和大小的脸部追踪图片的屏幕截图,但没有相机在下面看到的内容 - 只是白色。我在viewDidLoad()中使用CameraEngine框架启用相机,如下所示:

override func viewDidLoad() {
    super.viewDidLoad()

    self.cameraEngine.startSession()

有没有更好的方法来屏蔽所有行为,就像硬件引发的方法一样?或者我怎么能在截图中包含相机看到的内容?

谢谢!

更新:如果将来有人想知道我如何解决这个问题,因为我无法截取我自己没有画的东西,我通过用相机拍照并将该图像设置为视图的背景,然后执行截图功能,它的工作原理!

1 个答案:

答案 0 :(得分:3)

从iOS 9开始,不再可能拍摄包含未被程序绘制的屏幕元素的屏幕截图。您只能捕获应用程序的视图和图层。 Apple没有公开由电源+家庭向第三方开发商触发的功能。