问题描述
我正在将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 documentation所说的:
如果setActive(_:animated:)
的动画属性为真,则在训练覆盖淡出时isActive
和isHidden
为假。当在没有动画的情况下停用指导覆盖时,或者当动画结束时,ARKit通过调用coachingOverlayViewDidDeactivate(_:)
来通知您。
// SMOOTHLY
ARCoachingOverlayView().setActive(false, animated: false)
或者您可以使用isHidden
Property:
// ABRUPTLY
ARCoachingOverlayView().isHidden = true