我正在像这样在我的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:)的动画属性为true,则当教练叠加层逐渐淡出时,isActiveisHidden为false。在没有动画的情况下停用教练覆盖图或动画结束时,ARKit会通过调用coachingOverlayViewDidDeactivate(_:)通知您。
// SMOOTHLY
ARCoachingOverlayView().setActive(false, animated: false)
或者,您也可以使用isHidden属性:
// ABRUPTLY
ARCoachingOverlayView().isHidden = true

10-08 05:25