swift - 如何禁用 ARCoachingOverlayView 的自动激活?
问题描述
我正在ARCoachingOverlayView
为我的ARView
喜欢添加一个
let coachingOverlayTemp = ARCoachingOverlayView()
coachingOverlayTemp.delegate = self
coachingOverlayTemp.session = self.session
coachingOverlayTemp.goal = .horizontalPlane
coachingOverlayTemp.activatesAutomatically = true
coachingOverlayTemp.translatesAutoresizingMaskIntoConstraints = false
self.addSubview(coachingOverlayTemp)
coachingOverlay = coachingOverlayTemp // I store it to a variable on the class
以后,如果我这样做
coachingOverlay.activatesAutomatically = false
没有效果。coachingOverlay
继续正常工作。
如何在需要时立即禁用它?
解决方案
实例方法setActive(_:animated:)
控制辅导是否正在进行。
open func setActive(_ active: Bool, animated: Bool)
以下是 Apple 文档中的内容:
如果 的动画属性
setActive(_:animated:)
为真,isActive
并且isHidden
在教练覆盖淡出时为假。当教练覆盖在没有动画的情况下被停用时,或者当动画结束时,ARKit 通过调用来通知您coachingOverlayViewDidDeactivate(_:)
。
// SMOOTHLY
ARCoachingOverlayView().setActive(false, animated: false)
或者作为替代方案,您可以使用isHidden
属性:
// ABRUPTLY
ARCoachingOverlayView().isHidden = true
推荐阅读
- javascript - 使用 flex-start 和 flex-end 时滚动视图不滚动
- ios - 在 Cloud Firestore 中存储一组自定义对象的正确方法?
- oracle - oracle 中的多实体框架 6 上下文抛出 ORA-00955
- java - 如何为spring-boot oauth2 tokenstore中的每个请求获取一个新令牌
- git - 无法从我的 Git Repo 历史记录中删除大型 tarball(通过 git filter-branch)
- javascript - 从具有数组值的 json 文件中提取项目
- typescript - 如何将传入的 JSON 数据转换为具有动态数据的行和列的表格格式?
- android - 重命名应用程序和新应用程序图标 - 最佳实践是什么?
- powershell - 获取 WmiObject Win32_networkadapterconfiguration
- mongodb - MongoDB 合并展开的文档