Animationで何が違うのかをおさらいしておきましょう。Animationを直接実装するよりも比較的簡単です。以下のサンプルコードを見てみましょう。以下のコードはビューの背景色を徐々に赤から青に変更するアニメーションをそれぞれ実現しています。forKey:@"backgroundColor"];見て分かる通り、UIKitによるアニメーションの方がObjective-Cっぽくてより直感的に書けます。Animationが実行されています。そのため、ある程度簡単なアニメーションであればUIKitによるアニメーションでお手軽に実装できます。Animationを直接実装したものより複雑なアニメーションが実現できないというデメリットがあります。Animation、ってな感じです。AnimationのCAKeyframeAnimationしか用意されていませんでした。7より新たに追加されたのがUIKitによるキーフレームアニメーションってわけです!UIKitによるキーフレームアニメーションそれではようやく本題です。7からUIKitによるキーフレームアニメーションを実現するためのメソッドとして以下の2つが追加されました。animateKeyframesWithDuration:delay:options:animations:completion:addKeyframeWithRelativeStartTime:relativeDuration:animations:これらのメソッドの使い方は文章で説明するより、実際にソースコードを書いて動かした方が手っ取り早いです。実際のソースを見てみましょう。Applicationプロジェクトを作成し、以下のようにViewController.mにviewDidAppear:を実装してみましょう。completion:NULL];}・・・@endこのソースを実行すると、画面に配置したビューの背景色が赤、黄色、緑にアニメーションするはずです。animateKeyframesWithDuration:delay:options:animations:completion:メソッドこのメソッドはなんか見たことある気がしますね。6まででもよく利用していたanimateWithDuration:delay:options:animations:completion:です。animateKeyframesWithDuration:delay:options:animations:completion:はanimateWithDuration:delay:options:animations:completion:とほぼ同じように動作します。以下のように書いても動作します。completion:NULL];}どうやってUIKitによるキーフレームアニメーションを実現するのか?そこで登場するのがもう1つのメソッド、addKeyframeWithRelativeStartTime:relativeDuration:animations:メソッドです!addKeyframeWithRelativeStartTime:relativeDuration:animations:メソッドaddKeyframeWithRelativeStartTime:relativeDuration:animations:はanimateKeyframesWithDuration:delay:options:animations:completion:で指定された秒数の中でどのタイミングで(relativeStartTime)、どのくらいの秒数(relativeDuration)アニメーションするかを相対的に指定するためのメソッドです。実はこのaddKeyframeWithRelativeStartTime:relativeDuration:animations:はそもそも単独で使用できません。animateKeyframesWithDuration:delay:options:animations:completion:のアニメーションブロック内で初めて効果の出るメソッドなのです!ここで特に重要なのが、指定する時間に関する値はあくまで相対的な値であることです。指定できる値は0〜1.0です。animateKeyframesWithDuration:delay:options:animations:completion:でアニメーション時間が5秒だとすると、0.1を指定すれば0.5秒、0.5を指定すれば2.5秒になります。分かってしまえば非常に簡単ですね。Animationやる方がいいです。935,122まだプロフィールが設定されていません。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。