首页 > 解决方案 > 如何禁用 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继续正常工作。

如何在需要时立即禁用它?

标签: swiftarkitrealitykit

解决方案


实例方法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

推荐阅读