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 ...
Get iOS 5 Programming Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.