从文档目录中读取 Lottie 动画的正确方法是什么

What's the correct way to read Lottie animation from document directory

我正在尝试将 json 存储在文档目录中,然后读取以显示 Lottie 动画。

这是我在文档

中写json的方式
        if let documentDirectory = FileManager.default.urls(for: .documentDirectory,
                                                            in: .userDomainMask).first {
            let pathWithFilename = documentDirectory.appendingPathComponent("myJsonString.json")
            
            do {
                try jsonString.write(to: pathWithFilename, atomically: true, encoding: .utf8)
            } catch {
                
            }
        }
        

我是这样读的

            let checkMarkAnimation =  AnimationView(filePath: "\(pathWithFilename)")
            animationView.contentMode = .scaleAspectFit
            self.animationView.addSubview(checkMarkAnimation)
            checkMarkAnimation.frame = self.animationView.bounds
            checkMarkAnimation.loopMode = .loop
            checkMarkAnimation.play()

我完全知道这是有效的 json,当我打印 Data(contentsOf: pathWithFilename) 时,它打印实际的 json 但是当我用 AnimationView(filePath:) 在动画中分配它时没用。

您使用文件路径的方式存在问题。由于 pathWithFilename 是 URL,而不是像 "\(pathWithFilename)" 那样使用它,您应该像 - pathWithFilename.path.

那样使用它

以下内容适合您,

let checkMarkAnimation =  AnimationView(filePath: pathWithFilename.path)
animationView.contentMode = .scaleAspectFit
self.animationView.addSubview(checkMarkAnimation)
checkMarkAnimation.frame = self.animationView.bounds
checkMarkAnimation.loopMode = .loop
checkMarkAnimation.play()