ARSCNView的屏幕截图

时间:2018-03-01 12:43:25

标签: ios swift arkit

我需要制作ARSCNView的截图,该类定义如下:

public class SceneLocationView: ARSCNView, ARSCNViewDelegate { }

我按照以下方法完成截图: How do I take a full screen Screenshot in Swift?

但不会打印scenelocationview视图,其余部分都是。

任何人都能成功地做到这一点吗?

2 个答案:

答案 0 :(得分:2)

试试此扩展程序,

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

并使用

let screenShot = self.view?.snapshot

我能够从此扩展程序中保存OpenGL View的屏幕截图。

答案 1 :(得分:2)

还有另一种方式:

ARSCNView具有内置功能:.snapshot()

这可以像这样轻松调用:

  let renderedImage = augmentedRealityView.snapshot()

它也可能更有用,因为我认为它也不会呈现任何UIKit元素,例如UINavigationBar