Lottie for iOS示例?

时间:2017-02-10 18:55:36

标签: ios objective-c xcode after-effects

我对动画很新,我正试图让以下库工作:https://github.com/airbnb/lottie-ios

它需要在After Effects中创建的动画,并使用bodymovin(https://github.com/bodymovin/bodymovin

导出为JSON

我制作了一个简单的测试动画并将其导出为JSON(称为data.json)。我在Xcode中创建了一个简单的测试应用程序,添加了Lottie框架,并将data.json添加到了bundle中。我只是试图让动画在启动时显示,这是我在viewDidLoad中无法正常工作的内容:

NSString *myFilePath =  [[NSBundle mainBundle] pathForResource:@"data" ofType:@"json"];

NSData *myData = [NSData dataWithContentsOfFile:myFilePath];

NSError *error = nil;

NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:myData
                                                         options:kNilOptions
                                                           error:&error];

LOTAnimationView *testAnimation = [LOTAnimationView animationFromJSON:jsonDict];

[self.view addSubview:testAnimation];

[testAnimation play];

NSLog(@"subviews - %@", self.view.subviews);
NSLog(@"testanim - %@", testAnimation.description);
if (testAnimation.isAnimationPlaying)
{
    NSLog(@"is playing");
}

我得到的只是一个空白的白色屏幕。在控制台中,我可以看到添加了子视图,还有isAnimationPlaying的日志。我也可以记录jsonDict.description,我看到JSON就在那里。我做错了什么?

这是我正在使用的JSON文件:http://s000.tinyupload.com/?file_id=15724557118327374873

1 个答案:

答案 0 :(得分:0)

我在自己的动画中看到过这样的一些问题。

首先,确保您的子视图在显示时具有有效的帧。我没有深入挖掘它,但有时我没有看到任何东西,直到我正确地将视图约束添加到动画视图。

其次,仔细检查动画以确保它不依赖图像资源,因为目前不支持。