iOS開発のLottie--クールなダイナミック
8692 ワード
動効はソフトウェア開発において非常によく見られ、クールなアニメーションはアプリケーションのB格を向上させることができるが、デザイナーの設計からプログラム猿GGのコードに変換するのは非常に「苦痛」な過程である.複雑なアニメーションでは、研究と実現に多くの時間がかかる可能性があります.Lottieの出現は、この気まずい局面を解決した.複雑でクールなダイナミック効果の実現が容易になります.
LottieはAirbnbのgithubでのオープンソースプロジェクトで、iOS、Android、Rect Nativeマルチプラットフォームをサポートしています.Adobe After EffectプラグインbodymovinでJSONファイルをエクスポートし、lottieでjsonファイルをロードすることで動的効果を実現し、アニメーション開発を簡単に行うことができます.
プロジェクト転送ゲート:
Lottie-iOS:Lottie for iOSダウンロード.
Lottie-Android:Lottie for Androidダウンロード.
Lottie-RectNative:Lottie for RectNativeダウンロード.
Githubの紹介:
Lottie is a mobile library for Android and iOS that parses Adobe After Effects animations exported as json with bodymovin and renders the vector animations natively on mobile and through React Native!
LottieはAndriodとiOSに適用可能なアニメーションライブラリで、bodymovinプラグインによってAdobe After Effectsアニメーションを解析してjsonファイルとしてエクスポートし、携帯電話側のオリジナル方式またはReact Nativeによってベクトルアニメーションをレンダリングします.
注意:iOS 8+をサポートします.
公式実現効果図は以下の通りである.
AEツールのインストールとプラグインの構成とJSONファイルの生成については、ご本人のAdobe After Effect For Macブログを参照してください.
物の準備ができたらアニメーションを実現することができます.
次の操作を行います.
Lottie supports iOS 8 and above. Lottie animations can be loaded from bundled JSON or from a URL
To bundle JSON just add it and any images that the animation requires to your target in xcode.
ローカルJSONファイルまたはJSONのURLアドレスをロードできます.
サンプルコード:
1、ローカルJSONファイルでロードする:
2、URLでロード:
動的効果の進行状況を直接設定できます.
カスタムターンテーブルコントローラをサポートできます.
Swiftサポート:
注意:
Animation file name should be first added to your project. as for the above code sample, It won't work until you add an animation file called
上記のサンプルコードでは、アクティビティファイルをプロジェクトに追加してから、アクティビティを実行する必要があります.
AEがサポートする特性
Keyframe Interpolation Linear Interpolation Bezier Interpolation Hold Interpolation Rove Across Time Spatial Bezier
Solids Transform Anchor Point Transform Position Transform Scale Transform Rotation Transform Opacity
Masks Path Opacity Multiple Masks (additive)
Track Mattes Alpha Matte
Parenting Multiple Parenting Nulls
Shape Layers Anchor Point Position Scale Rotation Opacity Path Group Transforms (Anchor point, position, scale etc) Rectangle (All properties) Elipse (All properties) Multiple paths in one group
Stroke (shape layer) Stroke Color Stroke Opacity Stroke Width Line Cap Dashes
Fill (shape layer) Fill Color Fill Opacity
Trim Paths (shape layer) Trim Paths Start Trim Paths End Trim Paths Offset
Layer Features Precomps Image Layers Shape Layers Null Layers Solid Layers Parenting Layers Alpha Matte Layers
現在サポートされていないAEプロパティ Even-Odd winding paths Merge Shapes Trim Shapes Individually feature of Trim Paths Expressions 3d Layer support Gradients Polystar shapes (Can convert to vector path as a workaround) Alpha inverted mask
転載先:https://www.cnblogs.com/ZachRobin/p/6872840.html
LottieはAirbnbのgithubでのオープンソースプロジェクトで、iOS、Android、Rect Nativeマルチプラットフォームをサポートしています.Adobe After EffectプラグインbodymovinでJSONファイルをエクスポートし、lottieでjsonファイルをロードすることで動的効果を実現し、アニメーション開発を簡単に行うことができます.
プロジェクト転送ゲート:
Lottie-iOS:Lottie for iOSダウンロード.
Lottie-Android:Lottie for Androidダウンロード.
Lottie-RectNative:Lottie for RectNativeダウンロード.
Githubの紹介:
Lottie is a mobile library for Android and iOS that parses Adobe After Effects animations exported as json with bodymovin and renders the vector animations natively on mobile and through React Native!
LottieはAndriodとiOSに適用可能なアニメーションライブラリで、bodymovinプラグインによってAdobe After Effectsアニメーションを解析してjsonファイルとしてエクスポートし、携帯電話側のオリジナル方式またはReact Nativeによってベクトルアニメーションをレンダリングします.
注意:iOS 8+をサポートします.
公式実現効果図は以下の通りである.
AEツールのインストールとプラグインの構成とJSONファイルの生成については、ご本人のAdobe After Effect For Macブログを参照してください.
物の準備ができたらアニメーションを実現することができます.
次の操作を行います.
Lottie supports iOS 8 and above. Lottie animations can be loaded from bundled JSON or from a URL
To bundle JSON just add it and any images that the animation requires to your target in xcode.
ローカルJSONファイルまたはJSONのURLアドレスをロードできます.
サンプルコード:
1、ローカルJSONファイルでロードする:
1 LOTAnimationView *animation = [LOTAnimationView animationNamed:@"Lottie"];
2 [self.view addSubview:animation];
3 [animation playWithCompletion:^(BOOL animationFinished) {
4 // Do Something
5 }];
2、URLでロード:
1 LOTAnimationView *animation = [[LOTAnimationView alloc] initWithContentsOfURL:[NSURL URLWithString:URL]];
2 [self.view addSubview:animation];
動的効果の進行状況を直接設定できます.
1 CGPoint translation = [gesture getTranslationInView:self.view];
2 CGFloat progress = translation.y / self.view.bounds.size.height;
3 animationView.animationProgress = progress;
カスタムターンテーブルコントローラをサポートできます.
#pragma mark -- View Controller Transitioning
- (id)animationControllerForPresentedController:(UIViewController *)presented
presentingController:(UIViewController *)presenting
sourceController:(UIViewController *)source {
LOTAnimationTransitionController *animationController = [[LOTAnimationTransitionController alloc] initWithAnimationNamed:@"vcTransition1"
fromLayerNamed:@"outLayer"
toLayerNamed:@"inLayer"];
return animationController;
}
- (id)animationControllerForDismissedController:(UIViewController *)dismissed {
LOTAnimationTransitionController *animationController = [[LOTAnimationTransitionController alloc] initWithAnimationNamed:@"vcTransition2"
fromLayerNamed:@"outLayer"
toLayerNamed:@"inLayer"];
return animationController;
}
Swiftサポート:
1 let animationView = LOTAnimationView(name: "hamburger")
2 self.view.addSubview(animationView)
3
4 animationView.play(completion: { finished in
5 // Do Something
6 })
注意:
Animation file name should be first added to your project. as for the above code sample, It won't work until you add an animation file called
hamburger.json
.. let animationView = LOTAnimatedView.animationNamed("here_goes_your_json_file_name_without_.json")
上記のサンプルコードでは、アクティビティファイルをプロジェクトに追加してから、アクティビティを実行する必要があります.
AEがサポートする特性
Keyframe Interpolation
Solids
Masks
Track Mattes
Parenting
Shape Layers
Stroke (shape layer)
Fill (shape layer)
Trim Paths (shape layer)
Layer Features
現在サポートされていないAEプロパティ
転載先:https://www.cnblogs.com/ZachRobin/p/6872840.html