8.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
];
}
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 gesture.
The locationInView:
method of
the UITapGestureRecognizer
class can be ...
Get iOS 6 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.