UIGestureRecognizer ではタップ、ダブルタップ、タップアンドホールド、パン(ドラッグ)、スワイプ(フリック)、ローテイト、ピンチイン・アウトなどがありますが
手っ取り早くタップの使い方を見てみたいと思います。
尚、Swift のケースはこちらです
タップ操作はスマホアプリの便利な機能です。UIGestureRecognizer ではタップ、スワイプ(フリック)等々を扱えますが、まず...
Objective-C
Xcode 9.4
Xcode 9.4
UITapGestureRecognizer
タップを認識する為に、UITapGestureRecognizer を使ってインスタンスを生成します。
1 2 |
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapped:)]; |
selector でタップされたときに呼びだされるメソッドを登録
View に インスタンスを追加します
1 |
[self.view addGestureRecognizer:tapGesture]; |
タップされた時に、メソッドが呼び出されます
1 2 3 |
- (void)tapped:(UITapGestureRecognizer *)sender{ // 処理 } |
サンプルコード
実際のコードです、Delegate をセットします。
ViewController.h
1 2 3 4 5 |
#import <UIKit/UIKit.h> @interface ViewController : UIViewController<UIGestureRecognizerDelegate> @end |
ViewController.m
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
#import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; [self setTapGesture]; } - (void)setTapGesture{ // シングルタップ UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapped:)]; // デリゲートをセット tapGesture.delegate = self; // view に追加 [self.view addGestureRecognizer:tapGesture]; } - (void)tapped:(UITapGestureRecognizer *)sender{ NSLog(@"タップ"); } @end |
実際にタップして「タップ」のログが出てくれば成功です。
1 2 3 4 |
2018-06-12 16:40:15.808051+0900 TestUIGestureRecognizer[4464:215130] タップ 2018-06-12 16:40:20.296724+0900 TestUIGestureRecognizer[4464:215130] タップ 2018-06-12 16:40:20.851207+0900 TestUIGestureRecognizer[4464:215130] タップ 2018-06-12 16:40:21.573400+0900 TestUIGestureRecognizer[4464:215130] タップ |
References:
UIGestureRecognizer – UIKit | Apple Developer Documentation
UITapGestureRecognizer – UIKit | Apple Developer Documentation