どの辺がマフィアなのかはよくわかってません。はじめにクリスマスイブですね(記事出した時はそうなんです)。街には笑顔が溢れて、活気に満ちていることと思います。カップルで幸せな時間を共にする人、家族で温かい食卓を囲む人、孤独を噛みしめる人など、色々な過ごし方の人がいると思います。今回はそんな人たちのための記事です。Swiftでは基本的なAnimationは数行で実装できるようになっている(本当に素敵)のですが、今回は標準では積まれていないゆるやかな往復運動を正弦関数を用いて実装したいと思います。使われているものの一部で結構我ながら気に入ってます。今回はこのハートの動きの部分が純Swiftでどうやって動かされているのかを見ていきたいと思います。方針このハートのAnimationは3つの小さなAnimationに分解できます。opacityが小さくなるAnimationy方向に一定速度で上昇していくAnimationx方向に緩やかに振動するAnimationです。1と2に関してはCABasicAnimationというswift組み込みのAnimationで簡単に実装できるので、今回は3をメインに触れていきたいと思いますが、一応Animationの基礎についても触れていきます。僕の記事なんて読まなくても、素晴らしい記事がQiitaにたくさん落ちています。qiita.comその中でも今回必要なものだけを抜粋しました。CABasicAnimationSwiftでUIViewの属性の1つをAnimationで変化させたいと思った時、大概の場合は何を変化させるか(keyPath)初期値(fromValue)終了値(toValue)期間(duration)を指定するだけで簡単に実装できます。nil)※CABasicAnimationを用いてAnimationで変化させられる要素(keyPath)は以下を参照してください。developer.apple.comこれでも十分綺麗ですが、まだちょっと物足りないですね。CAAnimationGroup実はCAAnimationはいくつでも組み合わせることができます。CAAnimationGroupというクラスを使っていきます。プロパティにCAAnimationの配列を渡すことで、それらのAnimationが1つに集められた1つのAnimationを作成することができます。nil)透明度を追加したことで儚げな感じがプラスされましたね。人の心は移ろいやすいものですもちろん配列に追加していけば3つでも4つでもAnimationを組み合わせることができます。豊富に数学関数を含んでいます。三角関数関連だけでも以下のラインナップです。アークハイパボリックサイン・コサイン・タンジェントasinh(x)acosh(x)atanh(x)今回はその中でも正弦関数(sin)をつかって滑らかなAnimationを実装していきます。経過時間の配列とそれに対応する値の配列を与えることで、その途中経過をよしなに補完したAnimationを作成してくれます。2値や経過時間の差分に変化をもたせることで、CABasicAnimationより自由度の高いAnimationを作成することができます。値を変則的に動かすことでゆるやかなカーブを描かせていきます。いう名前で宣言しておきます。frameCountで均等に割った経過時間を指定します。組み合わせて再生してみましょう。_k0mach1月別アーカイブスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。