我正在尝试在我的应用程序(选项卡式应用程序)中实现 iOS 11 beta 的 ARKit。但正如ARKit 会话暂停和不恢复线程中所说,每当我将选项卡更改为另一个视图控制器并返回时,ARSession 就会被冻结而不恢复。
是否可以在选项卡式应用程序中实现 ARSCNView,这样如果你回来我可以恢复 ARSession?如果有怎么办?
我正在尝试在我的应用程序(选项卡式应用程序)中实现 iOS 11 beta 的 ARKit。但正如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 如何在他们的演示项目中制作这些弹出屏幕