如何在不冻结 ARSession 的情况下将 ARSCNView 放入 Tabview 控制器中?
How to put ARSCNView in Tabview controller without freezing the ARSession?
我正在尝试在我的应用程序(Tabbed 应用程序)中实现 iOS 11 beta 的 ARKit。但是正如 线程中所说,每当我将选项卡更改为另一个视图控制器并返回时,ARSession 就会冻结并且不会恢复。
是否可以在选项卡式应用程序中实现 ARSCNView,以便如果您回来我可以恢复 ARSession?如果是这样怎么办?
是的,你可以:
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
let configuration = ARWorldTrackingSessionConfiguration()
sceneView.session.run(configuration, options: [.resetTracking, .removeExistingAnchors])
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
sceneView.session.pause()
}
当视图消失时停止会话,并在视图出现时通过清除锚点和重置跟踪重新运行会话。还要避免出现和消失 ASCNView 更好地使用弹出视图控制器。
为了更好的用户体验,请查看 Apple 如何在 demo project
中制作这些弹出屏幕
我正在尝试在我的应用程序(Tabbed 应用程序)中实现 iOS 11 beta 的 ARKit。但是正如
是否可以在选项卡式应用程序中实现 ARSCNView,以便如果您回来我可以恢复 ARSession?如果是这样怎么办?
是的,你可以:
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
let configuration = ARWorldTrackingSessionConfiguration()
sceneView.session.run(configuration, options: [.resetTracking, .removeExistingAnchors])
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
sceneView.session.pause()
}
当视图消失时停止会话,并在视图出现时通过清除锚点和重置跟踪重新运行会话。还要避免出现和消失 ASCNView 更好地使用弹出视图控制器。
为了更好的用户体验,请查看 Apple 如何在 demo project
中制作这些弹出屏幕