Introduction

In this article I will create a Single view application. Here I use a single label from outlet. When we perform a gesture it shows the relevant message on the Simulator screen.

To understand it we use the following.

Step 1

Open XCode by double-clicking on it.

Step 2

Create a New XCode Project by clicking on it.

Step 3

Now Select Single View Application and click on Next.

Step 4

Now provide your Product Name and Company Identifier.

Step 5

Select the location where you want to save your project and click on Create.

Step 6

Now here we write code:

RecognizerViewController.h

//
// RecognizerViewController.h
// UIGesture
//
// Created by Sachin Bhardwaj on 11/12/12.
// Copyright (c) 2012 Sachin Bhardwaj. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface RecognizerViewController : UIViewController

@property (strong, nonatomic) IBOutlet UILabel *statusLabel;

@end

RecognizerViewController.m

//
// RecognizerViewController.m
// UIGesture
//
// Created by Sachin Bhardwaj on 11/12/12.
// Copyright (c) 2012 Sachin Bhardwaj. All rights reserved.
//

#import "RecognizerViewController.h"

@interface RecognizerViewController ()

@end

@implementation RecognizerViewController
@synthesize statusLabel;
- (void)viewDidLoad
{
[super viewDidLoad];
UITapGestureRecognizer *doubleTap =
[[UITapGestureRecognizer alloc]
initWithTarget:self
action:@selector(tapDetected:)];
doubleTap.numberOfTapsRequired = 2;
[self.view addGestureRecognizer:doubleTap];

UITapGestureRecognizer *SingleTap =
[[UITapGestureRecognizer alloc]
initWithTarget:self
action:@selector(tapDetectedS:)];
SingleTap.numberOfTapsRequired = 1;
[self.view addGestureRecognizer:SingleTap];


UIPinchGestureRecognizer *pinchRecognizer =
[[UIPinchGestureRecognizer alloc]
initWithTarget:self
action:@selector(pinchDetected:)];
[self.view addGestureRecognizer:pinchRecognizer];

UIRotationGestureRecognizer *rotationRecognizer =
[[UIRotationGestureRecognizer alloc]
initWithTarget:self
action:@selector(rotationDetected:)];
[self.view addGestureRecognizer:rotationRecognizer];

UISwipeGestureRecognizer *swipeRecognizerR =
[[UISwipeGestureRecognizer alloc]
initWithTarget:self
action:@selector(swipeDetected:)];
swipeRecognizerR.direction = UISwipeGestureRecognizerDirectionRight;
[self.view addGestureRecognizer:swipeRecognizerR];

UISwipeGestureRecognizer *swipeRecognizerUp =
[[UISwipeGestureRecognizer alloc]
initWithTarget:self
action:@selector(swipeDetectedUp:)];
swipeRecognizerUp.direction = UISwipeGestureRecognizerDirectionUp;
[self.view addGestureRecognizer:swipeRecognizerUp];

UISwipeGestureRecognizer *swipeRecognizerDown =
[[UISwipeGestureRecognizer alloc]
initWithTarget:self
action:@selector(swipeDetectedDown:)];
swipeRecognizerDown.direction = UISwipeGestureRecognizerDirectionDown;
[self.view addGestureRecognizer:swipeRecognizerDown];

UISwipeGestureRecognizer *swipeRecognizerL =
[[UISwipeGestureRecognizer alloc]
initWithTarget:self
action:@selector(swipeDetectedL:)];
swipeRecognizerL.direction = UISwipeGestureRecognizerDirectionLeft;
[self.view addGestureRecognizer:swipeRecognizerL];


UILongPressGestureRecognizer *longPressRecognizer =
[[UILongPressGestureRecognizer alloc]
initWithTarget:self
action:@selector(longPressDetected:)];
longPressRecognizer.minimumPressDuration = 2;
longPressRecognizer.numberOfTouchesRequired = 1;
[self.view addGestureRecognizer:longPressRecognizer];
}

- (IBAction)longPressDetected:(UIGestureRecognizer *)sender {
statusLabel.text = @"Long Press";
}

- (IBAction)swipeDetectedUp:(UIGestureRecognizer *)sender {
statusLabel.text = @"Up Swipe";
}

- (IBAction)swipeDetectedDown:(UIGestureRecognizer *)sender {
statusLabel.text = @"Down Swipe";
}

- (IBAction)swipeDetected:(UIGestureRecognizer *)sender {
statusLabel.text = @"Right Swipe";
}

- (IBAction)swipeDetectedL:(UIGestureRecognizer *)sender {
statusLabel.text = @"Left Swipe";
}

- (IBAction)tapDetectedS:(UIGestureRecognizer *)sender {
statusLabel.text = @"Single Tap";
}
- (IBAction)tapDetected:(UIGestureRecognizer *)sender {
statusLabel.text = @"Double Tap";
}

- (IBAction)pinchDetected:(UIGestureRecognizer *)sender {

CGFloat scale =
[(UIPinchGestureRecognizer *)sender scale];
CGFloat velocity =
[(UIPinchGestureRecognizer *)sender velocity];

NSString *resultString = [[NSString alloc] initWithFormat:
@"Pinch - scale = %f, velocity = %f",
scale, velocity];
statusLabel.text = resultString;
}

- (IBAction)rotationDetected:(UIGestureRecognizer *)sender {
CGFloat radians =
[(UIRotationGestureRecognizer *)sender rotation];
CGFloat velocity =
[(UIRotationGestureRecognizer *)sender velocity];

NSString *resultString = [[NSString alloc] initWithFormat:
@"Rotation - Radians = %f, velocity = %f",
radians, velocity];
statusLabel.text = resultString;
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

@end

Step 7

Click on the Run button to show the output.

Output 1 in iPhone

output1-n-iPhone.jpg

Output 2 in iPhone

output2-in-iPhone.jpg

When we perform a single-click on the iPhone screen it recognize it and shows this output.

Output 3 in iPhone

output3-in-iPhone.jpg

When we perform a double-click on the iPhone screen it recognizes it and shows this output.

Output 4 in iPhone

output4-in-iPhone.jpg

When we perform a single click for a long time (just 2 seconds) on the iPhone screen it recognizes it and shows this output.

Output 5 in iPhone

output5-in-iPhone.jpg

When we swipe our finger up on the iPhone screen it recognizes it and shows this output.

Output 6 in iPhone

output6-in-iPhone.jpg

When we swipe our finger down on the iPhone screen it recognizes it and shows this output.

Output 7 in iPhone

output7-in-iPhone.jpg