Objective-C 基本講座

UIViewをタップした場所に移動させる

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

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
複数のUITapGestureRecognizerからの通知を、一つのメソッドで扱う方法を紹介します。
講師:
06:46

字幕

このレッスンでは 複数の UITapGestureRecognizer からの 通知を 1 つのメソッドで扱う方法を紹介します まず今見ている色のついた 2つの UIView には 親子関係を結ばせています 黒い方が親で オレンジが子供です この2つに UITapGestureRecognizer を 登録しています この場合1 つの UITapGestureRecognizer が 2 つの UIView の面倒では見れないので UITapGestureRecognizer は UIView ごとに作成する必要があります ただし通知先に指定するオブジェクトや メソッドは同じもので構いません 同じメソッドで2 つの UITapGestureRecognizer からの 通知を受け取り どの UIView がタップされたかを 特定することにします そのため通知用に登録するメソッドは 引数付きとします 名前は didTap としました セレクターに渡す時に コロンを忘れないようにしてください didTap では 引数で受け取った UITapGestureRecognizer の ビュープロパティを調べます ここには登録先の UIView が 入っているのでどちらの UIView が タップされたかがわかります そのため黒い UIView と オレンジの UIView はそれぞれ インスタンス変数として持たせています こうやって implementation の部分に { }をつけることによって ここでもインスタンス変数が 宣言できるようになっています これはヘッダーファイル側の interface 部に書いて 使っているインスタンス変数の情報が 外部に見えるのを防ぐために 用意された仕組みです 大規模なアプリを作っている時に 特に役立ちます その上にある派生元の代わりに カッコのつけられた― interface 部も同じ目的です クラス拡張と言い こちらではプロパティも宣言できます 黒い方の UIView を board オレンジの方を subboard と名付けています どちらもセルフビューが片付けられる時に 一緒に片付けられるように weak 指定をしています ついていない場合は viewController が片付けられるまで 保持されることになります そして 2 つの UIView のタップへの反応用に もう1 つ UIView を用意しています タップされたビューに合わせて この UIView の背景色を 変更することにします 名前は indicator としました ランして board をタップすると indicator が赤くなります subboard は board の手前なので 重なっている場所では subboard が先にタップを感知します このようにタップの認識は 手前の UIView が優先されます subboard の内 board から はみ出した部分は反応しません これは subboard が board の子供として登録されているからです タップは親側の UIView を はみ出す範囲は反応しません 逆に画像が親画面をはみ出した部分も 表示されている点にも注目してください UIView は子画面が 自分の矩形をはみ出しても表示します 画面もタップに反応する範囲と 一致させたいなら 親側 UIView の clipsToBounds プロパティを yes にします 今回なら board の clipsToBounds を yes にします clipsToBounds は ブール型として定義されていて ブール型はブール値の真偽を yes no で表現します ランさせるとタップの反応範囲と 画面が一致します 今度はタップ位置を取ってみましょう UITapGestureRecognizer に locationInView メッセージを送ると タップ位置を取り出せます locationInView の引数は UIView で タップ位置をどの座標系で戻すかを指定します ここで例えばセルフビューを渡せば セルフビューのローカル座標上での タップ位置が得られます board を渡すことで board 上の ローカル座標でのタップ位置がわかります 位置に合わせ背景色の照度を変更してみます ランすると board 側ではタップした― 縦位置に対応して indicator の明るさが変わります タップだけを認識している点にも 注目してください ドラッグには反応しません このレッスンでは 複数の UItapGestureRecognizer からの 通知を 1 つのメソッドで扱う方法を紹介しました

Objective-C 基本講座

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

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

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

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

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