我需要制作ARSCNView的截图,该类定义如下:
public class SceneLocationView: ARSCNView, ARSCNViewDelegate { }
我按照以下方法完成截图: How do I take a full screen Screenshot in Swift?
但不会打印scenelocationview视图,其余部分都是。
任何人都能成功地做到这一点吗?
答案 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
。