当前位置: 首页 > 面试题库 >

屏幕截图显示为空白-Swift

潘学民
2023-03-14
问题内容

嗨,我正在制作一个游戏,并且在游戏中添加了一个共享按钮。我希望用户能够在一条消息中彼此共享一条消息,URL和屏幕快照。它的共享方面工作正常,并且一切正常,但屏幕快照本身显示为空白。这是我用来截屏的代码:

   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)

    println("screenshot")

请帮助我解决此问题,请确保使用Swift语言来解决。如果这有所作为,我也使用SpriteKit技术。我是编码新手,所以请非常清楚。非常感谢你!


问题答案:

更新: Xcode 8.2.1•Swift 3.0.2

您需要在游戏场景中添加导入语句和此扩展:

import UIKit
extension UIView {
    var snapshot: UIImage? {
        UIGraphicsBeginImageContextWithOptions(bounds.size, false, 0)
        defer { UIGraphicsEndImageContext() }
        drawHierarchy(in: bounds, afterScreenUpdates: true)
        return UIGraphicsGetImageFromCurrentImageContext()
    }
}
let myImage = view?.snapshot


 类似资料:
  • 编辑: 下面是Android Studio运行选项卡上的错误

  • 我是一个完全不懂Android编程的人,通过阅读教程,我第一次尝试了它。问题是我用Android4.4.2的API创建了多个仿真器,但没有一个显示任何东西,只有空白屏幕..我用Google API 19试了一个AVD..这也不起作用..谁能指导我弄清楚它有什么问题..提前谢谢

  • 试图制作一个简单的应用程序,从服务器获取JSON数据,并在自定义列表中显示它们,非常简单的事情。 但当我运行应用程序时,它显示的是白色空白屏幕,但没有数据。它也没有显示任何错误,我假设如果有任何错误,它不会在我的手机中运行。但不显示获取的数据。 下面是类 我发现的其他问题与我的问题不匹配,否则不会添加这个问题。

  • 我一直在尝试让谷歌地图在Android Studio工作。 使用Google maps模板创建新项目时,效果很好。然而,当我在现有项目中实现地图时,它显示的只是一个灰色屏幕,左下角有一个徽标。 现有项目使用一个片段导航系统和一个单独的活动来承载所有其他片段类。但这不应该是问题的原因,因为我以与模板中相同的方式实现了映射,但它也不起作用。 我检查了Logcat输出,密钥验证没有错误。如果我更改密钥,

  • 我已经在我的NativeScript2.0项目中安装了nativescript-google-maps-sdk插件。 在app.gradle文件中,我添加了对com.google.android.gms:play-services-maps:8.3.0包的引用。 但是没有什么帮助...我仍然有一个空白的屏幕,有谷歌的标志,但没有地图。

  • 我使用的是EclipseIDE,下面的代码在浏览器上显示空白屏幕。我不知道为什么它会显示空白屏幕。有什么想法吗?提前谢谢。 请查找部署描述符文件。网状物xml: