Вот мой код:
Объявлено глобально:
lazy var imageView = UIImageView()
Загружен в viewWillAppear
let animation = UIImage.animatedImage(with: [UIImage(named: "0")!, UIImage(named: "1")!, UIImage(named: "2")!], duration: 1)
imageView = UIImageView(image: animation)
Добавляет анимацию на лицо пользователя (все работает нормально):
func renderer(_ renderer: SCNSceneRenderer, nodeFor anchor: ARAnchor) -> SCNNode? {
guard let device = sceneView.device else { return nil }
guard let faceGeometry = ARSCNFaceGeometry(device: device, fillMesh: true) else { return nil }
let faceNode = SCNNode(geometry: faceGeometry)
faceNode.name = "myAnimation"
faceNode.geometry?.firstMaterial?.diffuse.contents = imageView
return faceNode
}
Внутри прикосновений Закруглился, я пытаюсь это сделать, но это не останавливает анимацию:
guard let node = sceneView.scene.rootNode.childNode(withName: "myAnimation", recursively: true) else { return }
let imageView = node.geometry?.firstMaterial?.diffuse.contents as? UIImageView
imageView?.stopAnimating()
Я могу заменить "node.geometry? .FirstMaterial? .Diffuse.contents", но Я не могу манипулировать этим. Я хотел бы заняться другими вещами, кроме остановки анимации.
Спасибо за вашу помощь!