ios - 如何在不卡住 ARSession 的情况下将 ARSCNView 放入 Tabview Controller 中?

标签 ios ios11 xcode9-beta arkit

我正在尝试在我的应用程序(Tabbed 应用程序)中实现 iOS 11 beta 的 ARKit。但正如ARKit Session Paused and Not Resuming中所说线程,每当我将选项卡更改为另一个 View Controller 并返回时,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()
}

当 View 消失时停止 session ,并在 View 出现时通过清除 anchor 和重置跟踪重新运行 session 。还要避免出现和消失 ASCNView 更好地使用弹出 View Controller 。

为了获得更好的用户体验,请参阅 Apple 如何在其 demo project 中制作这些弹出屏幕

关于ios - 如何在不卡住 ARSession 的情况下将 ARSCNView 放入 Tabview Controller 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45056160/

相关文章:

iphone - 获取 UITableViewCell 的 subview (UITextField 或 UILabel)——两种方式,一种有效,一种无效——为什么?

ios - 多行 UILabel 底部在滚动后被截断,UITableViewCell -> UIStackView -> UILabel

iOS11 UIToolBar 内容 View

swift - MKUserTrackingButton 什么都不做

scenekit - AVDepthData(来自 TrueDepth 相机)中的深度值是否表示距相机或相机平面的距离?

ios - Xcode 9 beta 新构建系统失败并出现 "unable to build node"错误

ios - 向上滚动时隐藏大标题

ios - 如何判断哪个应用程序正在运行我的 iOS 8 扩展

xcode - 邀请您的 facebook、twitter、gmail friend 控制 ios 应用程序?

iOS - 使带有自定义单元格的 UITableView 在按钮单击时可编辑