如何以编程方式拍摄屏幕截图(Swift,SpriteKit)

htj*_*ohn 10 uigraphicscontext sprite-kit skview swift

我尝试了所建议的但是输出是一个白色的空白截图.这让我想到我没有在视图中添加任何内容.这是我在视图中添加图形的方法.addChild方法附带SpriteKit,它接收SKSpriteNodes:

  addChild(background)
    addChild(rate)
    addChild(scoreLabel)
    addChild(share)
    addChild(playAgain)
    addChild(highScoreLabel)
    addChild(scoreBackground)
    addChild(highScoreBackground)
Run Code Online (Sandbox Code Playgroud)

以下是截取屏幕截图的方法:

    UIGraphicsBeginImageContext(self.view!.bounds.size)
    self.view!.layer.renderInContext(UIGraphicsGetCurrentContext())
    let screenshot = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()
    UIImageWriteToSavedPhotosAlbum(screenshot, nil, nil, nil)
Run Code Online (Sandbox Code Playgroud)

任何的意见都将会有帮助

Nic*_*las 11

我认为这个问题可以与这个问题合并 .在swift上的Iphone截图只有白色背景

这似乎是一样的

编辑:

我想我找到了解决方案.首先阅读这篇文章:如何拍摄UIView的屏幕截图?

我创建了一个Extensions.swift文件,其中我使用该链接扩展了UIView的方法.

之后,我只需将以下内容连接到我的sprite-kit按钮

let screenshot = self.view?.pb_takeSnapshot()
UIImageWriteToSavedPhotosAlbum(screenshot, nil, nil, nil)
Run Code Online (Sandbox Code Playgroud)

Voilà,图像在相机胶卷中!