10.1. Detecting Swipe Gestures

Problem

You want to be able to detect when the user performs a swipe gesture on a view—for instance, swiping a picture out of the window.

Solution

Instantiate an object of type UISwipeGestureRecognizer and add it to an instance of UIView:

#import "ViewController.h"

@interface ViewController ()
@property (nonatomic, strong)
    UISwipeGestureRecognizer *swipeGestureRecognizer;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    /* Instantiate our object */
    self.swipeGestureRecognizer = [[UISwipeGestureRecognizer alloc]
                                   initWithTarget:self
                                   action:@selector(handleSwipes:)];
    
    /* Swipes that are performed from right to
     left are to be detected */
    self.swipeGestureRecognizer.direction =
    UISwipeGestureRecognizerDirectionLeft;
    
    /* Just one finger needed */
    self.swipeGestureRecognizer.numberOfTouchesRequired = 1;
    
    /* Add it to the view */
    [self.view addGestureRecognizer:self.swipeGestureRecognizer];
    
}

A gesture recognizer could be created as a standalone object, but here, because we are using it for just one view, we have created it as a property of the view controller that will receive the gesture (self.swipeGestureRecognizer). This recipe’s Discussion shows the handleSwipes: method used in this code as the target for the swipe gesture recognizer.

Discussion

The swipe gesture is one of the most straightforward motions that built-in iOS SDK gesture recognizers will register. It is a simple movement of one or more fingers on a view from one direction ...

Get iOS 7 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.