Objective-C 基本講座

UIViewをアニメーション付きで移動させる

全333コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
UIViewの属性をアニメーション付きで変更する方法を学習します。
講師:
07:05

字幕

このレッスンでは UIView の属性を アニメーション付きで 変更する方法を学習します 今動かしているのは赤い画面を タップした位置に移動させるプログラムです UITapGestureRecognizer を セルフビューに登録し locationIninView を使って タップ位置を取り出して その位置を赤い画面の UIView のセンタープロパティに 設定することで移動させています 赤い画面の UIView は bishop という名前です まずはこのセンタープロパティへの変更を アニメーション化してみましょう UIView の animateWithDuration クラス メソッドを使います ランすると3秒かけてbishop が 新しい位置に移動するようになりました 途中でのタップで方向転換もします 説明画面に切り替えます このように UIView の一部のプロパティは 指定すれば元の値から新しい値に変わる― 過程をアニメーションで 表現できるようになっています その指定作業が今回加えた変更 animateWithDuration クラスメソッドで行っている作業です 最初の引数でアニメーションを 何秒で行うかを指定し animations でアニメーション化したい プロパティの値を設定します クラスメソッドなので送る相手は クラスオブジェクトとなります animations ではブロックと呼ばれる― オブジェクトを渡すのですが これは ^ の後に続く { } の 中に書かれた処理を 実行するオブジェクトです animateWithDuration クラスメソッドでは この animations 引数を 次のように定義していて この内 nonNULL は 引数として nill は指定できないと いう意味なので取り省き メソッドの引数形式から C の引数形式に書き直すと 関数ポインターのアスタリスクが ^ に変形したものだとわかります 2 つの大きな違いは 関数ポインターの示す関数が アプリの起動直後から存在し { } 内でスタック変数や引数で 作業するといったものなのに対し ブロックオブジェクトは 引数として渡される直前に作成され その時点で { } 外で使われている変数の値が オブジェクト内にコピーされ 使われるという点が異なります この仕組みにより まるで処理をそのまま 続けているかのような記述を可能にしています そしてこのブロックオブジェクトの中で 行っている UIView のプロパティの変更が アニメーション化を希望している変更だと 解釈される仕組みです プロパティの変更はいくつでも追加できます 試しに UIView の透明度を決める― α プロパティも同時に変更してみましょう Xcode の画面に切り替えます α は値が1.0 で完全に不透明 0.0 で完全に透明となります 初期値は1.0 なので1.0 なら0.5 そうでなければ1.0 にしてみます ランすると移動しながら透明になったり 不透明になったりするようになりました アニメーション中にタップすると透明度の方は 突然透明度が目標値まで変化し 改めて新しい透明度に向けて アニメーションが始まります このアニメーションの移行は 古い方の処理が中断され 新しいアニメーションが作られるタイプと 古い方の処理に加えて新しい アニメーションが追加されるタイプがあります 設定するプロパティによって変わるようで bounds といった座標系が 追加タイプになるようです この中断や終了のタイミングを知りたいなら animateWithDuration の バリエーションである― コンプリーション引数付きの クラスメソッドを使いましょう アニメーションが中断または完了した時に こちらのブロックが呼び出されます 見ての通りブロックオブジェクトも 引数を受け取ることが可能です この finished は完了で 停止した場合に yes が入り 中断されて停止した場合に no となるのですが 今回のようにセンターのアニメーションなどでは いつでも yes が入ってきます センター の設定を外してみましょう α だけなら 中断で no となります このレッスンでは UIView の属性を アニメーション付きで変更する方法を 学習しました

Objective-C 基本講座

このコースはプログラミング初心者でもObjective-CによるiOSアプリ開発の体系的な理解が得られるように構成されています。プログラムの動作の原理、Objective-C言語の役割、そこで利用されるCocoa touchオブジェクトの役割、基本的なiOSアプリの作成方法などを学習します。ぜひこのコースをアプリ開発に踏み出すさいの第一歩としてください!

6時間39分 (69 ビデオ)
現在、カスタマーレビューはありません…
 
ソフトウェア・トピック
価格: 3,990
発売日:2015年11月18日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。