diff --git a/AppleLibs/View/UIViewController+Screenshot.swift b/AppleLibs/View/UIViewController+Screenshot.swift index c6e946b83fbdb2e1763a833e0b6ae3c5d2a36343..585cf87603ca3b8ca8d372b451c4fdc532f5434b 100644 --- a/AppleLibs/View/UIViewController+Screenshot.swift +++ b/AppleLibs/View/UIViewController+Screenshot.swift @@ -10,24 +10,20 @@ import UIKit extension UIViewController { open func takeScreenshot(_ shouldSave: Bool = false) -> UIImage? { - var screenshotImage :UIImage? - - let scale = UIScreen.main.scale - guard let layer = self.view.window?.layer else { + guard let window = self.view.window else { return nil } + let bounds = UIScreen.main.bounds - UIGraphicsBeginImageContextWithOptions(layer.frame.size, false, scale); - guard let context = UIGraphicsGetCurrentContext() else { + UIGraphicsBeginImageContextWithOptions(bounds.size, false, 0) + window.drawHierarchy(in: bounds, afterScreenUpdates: true) + guard let screenshotImage = UIGraphicsGetImageFromCurrentImageContext() else { return nil } - - layer.render(in:context) - screenshotImage = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() - if let image = screenshotImage, shouldSave { - UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil) + if shouldSave { + UIImageWriteToSavedPhotosAlbum(screenshotImage, nil, nil, nil) } return screenshotImage }