Я создал приложение AR, которое обнаруживает изображение, при обнаружении изображения я хочу воспроизвести gif поверх него.
Я следовал этому руководству для обнаружения изображения: https://www.raywenderlich.com/6957-building-a-museum-app-with-arkit-2
В V C я добавил Imageview следующим образом:
var imageView = GIFImageView(frame: CGRect(x: 0, y: 0, width: 600, height: 600))
Вот мой код в узле ARSCNViewDelegate didAdd для метода.
func renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnchor) {
DispatchQueue.main.async { self.instructionLabel.isHidden = true }
if let imageAnchor = anchor as? ARImageAnchor {
// handleFoundImage(imageAnchor, node)
let size = imageAnchor.referenceImage.physicalSize
DispatchQueue.main.async(){ // If we remove this we are getting UIview setAnimation is being call from background thread error is coming.
self.imageView.animate(withGIFNamed: "tenor.gif") // I actually access gif from Document folder i.e Data format
}
let imgMaterial = SCNMaterial()
imgMaterial.diffuse.contents = imageView
let imgPlane = SCNPlane(width: size.width, height: size.height)
imgPlane.materials = [imgMaterial]
let imgNode = SCNNode(geometry: imgPlane)
imgNode.eulerAngles.x = -.pi / 2
node.addChildNode(imgNode)
node.opacity = 1
}
}
После воспроизведения gif, когда я go возвращаюсь к своему предыдущему / следующему / тому же V C, я не могу нажать на какие-либо элементы пользовательского интерфейса (кнопки et * 1035) *).
В консоли я вижу это, но я не нашел решения для этого. анимация просмотра есть в файле UIImage + gif swift.
UIView setAnimationsEnabled вызывается из фонового потока. Выполнение любой операции из фонового потока в UIView или подклассе не поддерживается и может привести к неожиданному и коварному поведению
Просто запустите это в Device. https://drive.google.com/file/d/1FKHPO6SkdOEZ-w_GFnrU5CeeeMQrNT-h/view?usp=sharing
Вы просто запускаете этот проект на устройстве и сканируете изображение dinosaur.png (добавлен ионный код), и вы играете поверх него. Однажды, если вы go вернулись к первому V C, это все приложение заблокировано, вы не можете нажать ни на одну кнопку в First V C, а также вы не можете снова запустить сцену AR. Я не могу понять эту проблему, почему это происходит после фальсификации GIF. Можете ли вы попросить проверить и сообщить мне.
Если что-то понадобится, пожалуйста, дайте мне знать .. Заранее спасибо.