O'Reilly logo

iOS 5 Programming Cookbook by Vandad Nahavandipoor

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

7.5. Detecting Tap Gestures

Problem

You want to be able to detect when users tap on a view.

Solution

Create an instance of the UITapGestureRecognizer class and add it to the target view, using the addGestureRecognizer: instance method of the UIView class. Let’s have a look at the definition of the view controller (the .h file):

#import <UIKit/UIKit.h>

@interface Detecting_Tap_GesturesViewController : UIViewController

@property (nonatomic, strong) 
  UITapGestureRecognizer *tapGestureRecognizer;

@end

The implementation of the viewDidLoad instance method of the view controller is as follows:

- (void)viewDidLoad {
  [super viewDidLoad];
  
  self.view.backgroundColor = [UIColor whiteColor];
  
  /* Create the Tap Gesture Recognizer */
  self.tapGestureRecognizer = [[UITapGestureRecognizer alloc] 
                               initWithTarget:self
                               action:@selector(handleTaps:)];
  
  /* The number of fingers that must be on the screen */
  self.tapGestureRecognizer.numberOfTouchesRequired = 2;
  
  /* The total number of taps to be performed before the 
   gesture is recognized */
  self.tapGestureRecognizer.numberOfTapsRequired = 3;
  
  /* Add this gesture recognizer to the view */
  [self.view addGestureRecognizer:self.tapGestureRecognizer];
  
}

- (void) viewDidUnload{
  [super viewDidUnload];
  self.tapGestureRecognizer = nil;
}

Discussion

The tap gesture recognizer is the best candidate among gesture recognizers to detect plain tap gestures. A tap event is the event triggered by the user touching and lifting his finger(s) off the screen. A tap gesture is a discrete ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required