コース: Objective-C 基本講座

今すぐコースを受講しましょう

今すぐ登録して、23,100件以上登録されている、業界エキスパート指導のコースを受講しましょう。

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

UIViewをタップした場所に移動させる - Objective-Cのチュートリアル

コース: Objective-C 基本講座

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

このレッスンでは 複数の 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 が片付けられるまで 保持されることになります そして…

目次