gpt4 book ai didi

ios - 当我尝试在 Swift 中以编程方式截取我的应用程序的屏幕截图时,为什么屏幕截图只显示白色?

转载 作者:搜寻专家 更新时间:2023-11-01 07:29:49 25 4
gpt4 key购买 nike

在我的应用程序中,我有一个装有相机的 View 。我想截取这个拿着相机的 View 。但是,当我使用以下代码执行此操作时:

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

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

UIImageWriteToSavedPhotosAlbum(screenshot, nil, nil, nil)

保存到照片的屏幕截图是空白的,不显示相机 View 。

最佳答案

Render and capture名为 viewUIView:

UIGraphicsBeginImageContextWithOptions(view.frame.size, false, 0.0)
view.drawViewHierarchyInRect(view.frame, afterScreenUpdates: true)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext();

请记住 UIWindow 也是一个 View 。您可以使用此功能在保存到桌面的模拟器中进行测试:

public func saveImageToDesktop(image : UIImage, name : String)
{
let basePath = NSString(string: "~/Desktop").stringByExpandingTildeInPath
let path = "\(basePath)/\(name).png"
UIImagePNGRepresentation(image)?.writeToFile(path, atomically: true)
}

关于ios - 当我尝试在 Swift 中以编程方式截取我的应用程序的屏幕截图时,为什么屏幕截图只显示白色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33316189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com