我试图截取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()
有没有更好的方法来屏蔽所有行为,就像硬件引发的方法一样?或者我怎么能在截图中包含相机看到的内容?
谢谢!
更新:如果将来有人想知道我如何解决这个问题,因为我无法截取我自己没有画的东西,我通过用相机拍照并将该图像设置为视图的背景,然后执行截图功能,它的工作原理!
答案 0 :(得分:3)
从iOS 9开始,不再可能拍摄包含未被程序绘制的屏幕元素的屏幕截图。您只能捕获应用程序的视图和图层。 Apple没有公开由电源+家庭向第三方开发商触发的功能。