
Yapanimatorは、高速でフレンドリーな物理ベースのアニメーションシステムです。 Yapanimatorは使いやすさを念頭に置いて構築され、あなたとあなたのデザイナーを非常に幸せに保ちます。すべてのアニメーションは中断可能で、完了ブロックを含み、力を適用できます(たとえば、移行中のジェスチャーから速度を追加します)。いくつかの一般的にアニメーション化されたタイプ( CGタイプ)のAnimatableプロトコルの適合性を含めましたが、他のタイプに適合を追加するのは非常に簡単です。表現できるものは何でもアニメーション化して、一連のDouble Sで構成することができます。ビュープロパティ、音楽のボリューム、ベジエパス、色、ブラシストロークの滑らかな間のモーフィング、リストは続きます。
それは非常に使いやすく、美しいアニメーションを作るので、それが理由です。他の物理ベースのアニメーションシステム(UikitのSpring Animations、Facebookのポップなど)がありますが、それでも私たちの好みのためにコード、簿記、手持ち式を書く必要があります。 Yapanimatorは、長年にわたって独自のアプリで使用してきたコードの蒸留N-TheTerationを表しています。私たちはそれを私たちの日々で非常に貴重であると感じ、あなたもそうするだろうと思います。
Yapanimatorには、 CALayerとUIView / NSViewにボルトで固定された便利な拡張機能が付属しており、それぞれanimatedLayerとanimatedプロパティの下で1ライナーアニメーションを提供します。

func handle ( gesture : UIPanGestureRecognizer ) {
if gesture . state == . began {
squircle . animated . cornerRadius . animate ( to : squircle . bounds . width / 2.0 )
squircle . animated . rotationZ . animate ( to : . pi )
else if gesture . state == . changed {
squircle . animated . position . instant ( to : gesture . location ( in : nil ) )
} else if gesture . state == . ended {
squircle . animated . position . animate ( to : self . view . center )
squircle . animated . cornerRadius . animate ( to : 0 )
squircle . animated . rotationZ . animate ( to : 0 )
}
} カスタムアニメーターを作成するのは簡単です:
initialValueこれは、アニメーターの初期値を設定し、アニメーション化するタイプを通知します。willBeginが呼び出されました。アニメーション化するプロパティの実際の値を返します。これにより、アニメーターがアニメーターの範囲外で変更された場合に、アニメーターがその値と同期することができます。 (オプション)eachFrameアニメーションの各フレームと呼ばれます。これは通常、アニメーターのcurrent.valueアニメーション化するプロパティに適用する場所です。また、値をチェックして他のアクション /アニメーションをトリガーすることもできます。 frameAnimator = YapAnimator ( initialValue : square . frame , willBegin : { [ unowned self ] in
return self . square . frame
} , eachFrame : { [ unowned self ] ( animator ) in
self . square . frame = animator . current . value
} ) 
frameAnimator . bounciness = 1.5
frameAnimator . animate ( to : square . frame . insetBy ( dx : - 50 , dy : - 50 ) , completion : { animator , wasInterrupted in
if !wasInterrupted {
// animate back to the original value
animator . animate ( to : animator . current . value . insetBy ( dx : 50 , dy : 50 ) )
}
} ) 問題であなたの質問をしてください。私たちはそこに応答し、これを読んだことを修正します/答えが他の人に利益をもたらすように思われる場合は、ウィキを始めます。
Yapinimatorは、YAP Studiosが所有および維持しています。