UIGestureRecognizerDelegate Protocol Reference

Conforms to
Framework
/System/Library/Frameworks/UIKit.framework
Availability
Available in iOS 3.2 and later.
Companion guide
Declared in
UIGestureRecognizer.h
Related sample code

Overview

Delegates of a gesture recognizer—that is, an instance of a concrete subclass of UIGestureRecognizer—adopt the UIGestureRecognizerDelegate protocol to fine-tune an app’s gesture-recognition behavior. The delegates receive messages from a gesture recognizer, and their responses to these messages enable them to affect the operation of the gesture recognizer or to specify a relationship between it and another gesture recognizer, such as allowing simultaneous recognition or setting up a failure requirement.

Tasks

Regulating Gesture Recognition

Controlling Simultaneous Gesture Recognition

Setting Up Failure Requirements

Instance Methods

gestureRecognizer:shouldBeRequiredToFailByGestureRecognizer:

Asks the delegate if a gesture recognizer should be required to fail by another gesture recognizer.

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldBeRequiredToFailByGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
Parameters
gestureRecognizer

An instance of a subclass of the abstract base class UIGestureRecognizer. This is the object sending the message to the delegate.

otherGestureRecognizer

An instance of a subclass of the abstract base class UIGestureRecognizer.

Return Value

YES to set up a dynamic failure requirement between gestureRecognizer and otherGestureRecognizer. The default implementation returns NOgestureRecognizer isn’t required to fail by otherGestureRecognizer.

Discussion

This method is called once per attempt to recognize, so failure requirements can be determined lazily and may be set up between recognizers across view hierarchies. Note that returning YES is guaranteed to set up the failure requirement; returning NO, on the other hand, isn’t guaranteed to prevent or remove a failure requirement because otherGestureRecognizer might make itself a failure requirement by using its own subclass or delegate methods.

Availability
  • Available in iOS 7.0 and later.
Declared In
UIGestureRecognizer.h

gestureRecognizer:shouldReceiveTouch:

Ask the delegate if a gesture recognizer should receive an object representing a touch.

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
Parameters
gestureRecognizer

An instance of a subclass of the abstract base class UIGestureRecognizer.

touch

A UITouch object from the current multi-touch sequence.

Return Value

YES (the default) to allow the gesture recognizer to examine the touch object, NO to prevent the gesture recognizer from seeing this touch object.

Discussion

This method is called before touchesBegan:withEvent: is called on the gesture recognizer for a new touch.

Availability
  • Available in iOS 3.2 and later.
Declared In
UIGestureRecognizer.h

gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:

Asks the delegate if two gesture recognizers should be allowed to recognize gestures simultaneously.

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
Parameters
gestureRecognizer

An instance of a subclass of the abstract base class UIGestureRecognizer. This is the object sending the message to the delegate.

otherGestureRecognizer

An instance of a subclass of the abstract base class UIGestureRecognizer.

Return Value

YES to allow both gestureRecognizer and otherGestureRecognizer to recognize their gestures simultaneously. The default implementation returns NO—no two gestures can be recognized simultaneously.

Discussion

This method is called when recognition of a gesture by either gestureRecognizer or otherGestureRecognizer would block the other gesture recognizer from recognizing its gesture. Note that returning YES is guaranteed to allow simultaneous recognition; returning NO, on the other hand, is not guaranteed to prevent simultaneous recognition because the other gesture recognizer's delegate may return YES.

Availability
  • Available in iOS 3.2 and later.
Declared In
UIGestureRecognizer.h

gestureRecognizer:shouldRequireFailureOfGestureRecognizer:

Asks the delegate if a gesture recognizer should require another gesture recognizer to fail.

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRequireFailureOfGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
Parameters
gestureRecognizer

An instance of a subclass of the abstract base class UIGestureRecognizer. This is the object sending the message to the delegate.

otherGestureRecognizer

An instance of a subclass of the abstract base class UIGestureRecognizer.

Return Value

YES to set up a dynamic failure requirement between gestureRecognizer and otherGestureRecognizer. The default implementation returns NOgestureRecognizer doesn’t require otherGestureRecognizer to fail.

Discussion

This method is called once per attempt to recognize, so failure requirements can be determined lazily and may be set up between recognizers across view hierarchies. Note that returning YES is guaranteed to set up the failure requirement; returning NO, on the other hand, isn’t guaranteed to prevent or remove a failure requirement because otherGestureRecognizer might make itself a failure requirement by using its own subclass or delegate methods.

Availability
  • Available in iOS 7.0 and later.
Declared In
UIGestureRecognizer.h

gestureRecognizerShouldBegin:

Asks the delegate if a gesture recognizer should begin interpreting touches.

- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
Parameters
gestureRecognizer

An instance of a subclass of the abstract base class UIGestureRecognizer. This gesture-recognizer object is about to begin processing touches to determine if its gesture is occurring.

Return Value

YES (the default) to tell the gesture recognizer to proceed with interpreting touches, NO to prevent it from attempting to recognize its gesture.

Discussion

This method is called when a gesture recognizer attempts to transition out of the UIGestureRecognizerStatePossible state. Returning NO causes the gesture recognizer to transition to the UIGestureRecognizerStateFailed state.

Availability
  • Available in iOS 3.2 and later.
Declared In
UIGestureRecognizer.h