매우 흥미롭지 만 json 파일 사용과 같은 다른 init 메소드를 사용하고 싶지 않으십니까?
나는 Lottie의 문서를 체크 아웃했고이 초기화 함수 뒤에있는 설명을 찾을 수없는 것 같습니다. LOTAnimationView(name: "name")
. Lottie의 예에서 알 수 있듯이 LottieLogo.json 파일에는 내 프로젝트의 내 json 파일뿐 아니라 질문에 제시 한 json 파일과 다른 데이터가 있습니다. 그럼에도 불구하고
, 당신의 프로젝트로 JSON 파일을 추가하고 그것을 읽고 로티의 init 함수 사용 -> 내가 GPKit
https://github.com/glennposadas/gpkit-ios라는 내 작은 프로젝트에 JSON 파일을 읽기위한 함수를 만들어
LOTAnimationView(json: jsonObject)
: D를 다음과 같이 로티에 대한 위의 기능을 사용
public class GPJSONReader {
/** Get the whole JSON object from a file
* @returns an optional dictionary [String: Any]?
*/
public class func readJson(fileName: String, withBlock completion: ([String : Any]?) -> Void) {
do {
if let file = Bundle.main.url(forResource: fileName, withExtension: "json") {
let data = try Data(contentsOf: file)
let json = try JSONSerialization.jsonObject(with: data, options: [])
if let object = json as? [String : Any] {
GPLog(classSender: self, log: "JSON found as dictionary")
completion(object)
} else {
GPLog(classSender: self, log: "JSON is invalid")
completion(nil)
}
} else {
GPLog(classSender: self, log: "No file found!")
completion(nil)
}
} catch {
GPLog(classSender: self, log: error.localizedDescription)
completion(nil)
}
}
}
:
// Animate here...
GPJSONReader.readJson(fileName: "connecting", withBlock: { (jsonObject) in
if let jsonObject = jsonObject {
self.animationView = LOTAnimationView(json: jsonObject)
self.animationView.loopAnimation = true
self.animationView.play()
}
})
답변 해 주셔서 감사합니다. 나는 당신이 말하는 것처럼 다른 init 메소드를 사용해야한다고 생각한다. 나는 lottie가있는 버그가 있다고 믿습니다. 나는 그것에 관한 이슈를 열었습니다. https://github.com/airbnb/lottie-ios/issues/430 –