2016-03-24 98 views
0

我試圖截取顯示在iPhone顯示屏上的所有內容的屏幕截圖,與按住home + power按鈕的方式完全相同。我現在有截圖中的代碼是這樣的:截圖顯示所有內容

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並截屏。然而,使用這種方法,我可以獲得正確位置和大小的人臉跟蹤圖片的截圖,但不會顯示相機在下面看到的 - 只是白色。我能夠像這樣)使用CameraEngine框架在viewDidLoad中(相機:

override func viewDidLoad() { 
    super.viewDidLoad() 

    self.cameraEngine.startSession() 

有沒有更好的辦法來截圖一切行爲像硬件引起的方法?或者我怎麼能包含相機在屏幕截圖中看到的內容?

謝謝!

更新:如果將來有人想知道我是如何解決這個問題的,因爲我無法截圖,所以我沒有畫出自己,我通過用相機拍攝照片並將該圖像設置爲視圖的背景,然後執行截圖功能,它的工作原理!

+0

該答案中的代碼是我此刻正在執行屏幕截圖的過程,但屏幕截圖不包含相機所看到的內容。也許我需要在UIView中啓動相機會話? – Stickerbox

回答

3

從iOS 9開始,屏幕截圖不再可能包含未被程序繪製的屏幕元素。您只能捕獲應用程序的視圖和圖層。蘋果公司並沒有向第三方開發商公開由Power + home引發的功能。

+0

謝謝你的迴應! – Stickerbox