# US 2017/0286131 A1 · Gesture Recognizers with Delegates for Controlling and Modifying Gesture Recognition

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2017/0286131 A1
- Document ID: US20170286131A1
- Status: Published application
- Kind: A1
- Application number: 15/623,322
- Filed: 2017-06-14
- Published: 2017-10-05
- Earliest claimed: 2010-01-26
- Assignees: Apple Inc.
- Applicants: Apple Inc.
- Inventors: Joshua H. Shaffer; Bradford Allen Moore; Jason Clay Beaver
- Web page: https://patentgrep.com/patent/US20170286131A1

## CPC

- G06F 9/451: Execution arrangements for user interfaces
- G06F 3/04883: for inputting data by handwriting, e.g. gesture or text
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A software application includes a plurality of views and an application state. The application includes instructions for displaying one or more views, where a respective view includes a respective gesture recognizer having a corresponding delegate, detecting one or more touches on a touch-sensitive surface, and processing a respective touch. The processing includes obtaining a receive touch value based on the application state by executing the delegate; when the receive touch value meets predefined criteria, processing the respective touch at the respective gesture recognizer; and conditionally sending information corresponding to the respective touch to the software application in accordance with an outcome of the processing by the respective gesture recognizer and in accordance with the receive touch value determined by the delegate. The software application is executed in accordance with the outcome of the processing of the respective touch by the respective gesture recognizer.

## Claims

### Claim 1

A method, comprising:
at an electronic device having a touch-sensitive surface and configured to execute a software application that includes a plurality of views and an application state of the software application:
displaying one or more views of the plurality of views, wherein a respective view of the one or more displayed views includes one or more respective gesture recognizers, a respective gesture recognizer having a corresponding delegate;
detecting one or more touches, on the touch-sensitive surface, each having a touch position that falls within one or more of the displayed views;
processing a respective touch of the one or more touches, including:
obtaining a receive touch value based on the application state by executing, after detecting the one or more touches, the delegate corresponding to the respective gesture recognizer;
when the receive touch value meets predefined criteria, processing the respective touch at the respective gesture recognizer; and
conditionally sending information corresponding to the respective touch to the software application in accordance with an outcome of the processing of the respective touch by the respective gesture recognizer and in accordance with the receive touch value determined by the delegate corresponding to the respective gesture recognizer; and
executing the software application in accordance with the outcome of the processing of the respective touch by the respective gesture recognizer.

### Claim 2 (depends on 1)

The method of claim 1,
wherein the plurality of views include a first plurality of gesture recognizers;
the method including assigning distinct delegates to at least a subset of the first plurality of gesture recognizers, the subset comprising a second plurality of gesture recognizers; and
wherein processing the respective touch of the one or more touches includes:
identifying a set of candidate gesture recognizers of the first plurality of gesture recognizers;
for each candidate gesture recognizer having an assigned delegate, executing the assigned delegate to obtain a receive touch value in accordance with the application state;
identifying one or more receiving gesture recognizers, comprising a subset of the candidate gesture recognizers, in accordance with the obtained receive touch values; and
processing the respective touch at each gesture recognizer of one or more of the receiving gesture recognizers.

### Claim 3 (depends on 2)

The method of claim 2, wherein processing the respective touch at each gesture recognizer of the one or more receiving gesture recognizers includes:
processing the respective touch at a respective receiving gesture recognizer to which a delegate has been assigned in accordance with a respective gesture definition corresponding to the respective receiving gesture recognizer,
obtaining one or more values in accordance with the application state by executing the assigned delegate, and
conditionally sending the information corresponding to the respective touch to the software application in accordance with an outcome of the processing of the respective touch by the respective receiving gesture recognizer and in accordance with the one or more values obtained by executing the assigned delegate; and
the method includes executing the software application in accordance with information, received from one or more of the receiving gesture recognizers, corresponding to one or more of the touches.

### Claim 4 (depends on 3)

The method of claim 3, wherein processing the respective touch at the respective receiving gesture recognizer includes, when the detected touch is consistent with the respective gesture definition, conditionally enabling a corresponding state transition in the respective receiving gesture recognizer when the state transition is enabled by the assigned delegate.

### Claim 5 (depends on 3)

The method of claim 3, further comprising processing the respective touch at a second gesture recognizer, distinct from the respective receiving gesture recognizer, in accordance with one or more values determined by a delegate assigned to the second gesture recognizer.

### Claim 6 (depends on 3)

The method of claim 3, further comprising processing the respective touch at a second gesture recognizer, distinct from the respective receiving gesture recognizer, in accordance with one or more values determined by the delegate assigned to the respective receiving gesture recognizer.

### Claim 7 (depends on 3)

The method of claim 3, wherein processing the respective touch at the respective receiving gesture recognizer includes processing the respective touch in accordance with one or more values determined by a delegate assigned to a second gesture recognizer distinct from the respective receiving gesture recognizer.

### Claim 8 (depends on 3)

The method of claim 3, wherein a second delegate, distinct from the assigned delegate, is assigned to the respective receiving gesture recognizer, the method further comprising processing the respective touch at a second gesture recognizer, distinct from the respective receiving gesture recognizer, in accordance with one or more values determined by the second delegate assigned to the respective gesture recognizer.

### Claim 9 (depends on 1)

The method of claim 1, wherein the corresponding delegate includes instructions for determining one or more event recognizer properties for the respective gesture recognizer.

### Claim 10 (depends on 1)

The method of claim 1, wherein the corresponding delegate is configured to determine one or more of: whether the respective gesture recognizer is allowed to transition from an initial state of a state machine to another state; whether the respective gesture recognizer is allowed to simultaneously recognize the touch information as a corresponding gesture without blocking one or more other gesture recognizers from recognizing the event or being blocked by one or more other gesture recognizers recognizing the event; and whether the respective gesture recognizer is allowed to simultaneously recognize the touch information as a corresponding gesture without being blocked by the one or more other gesture recognizers recognizing the event.

### Claim 11

A computer readable storage medium storing one or more programs for execution by an electronic device with a touch-sensitive surface, the one or more programs including a software application that includes a plurality of views and an application state of the software application, the software application including instructions for:
displaying one or more views of the plurality of views, wherein a respective view of the one or more displayed views includes one or more respective gesture recognizers, a respective gesture recognizer having a corresponding delegate;
detecting one or more touches, on the touch-sensitive surface, each having a touch position that falls within one or more of the displayed views;
processing a respective touch of the one or more touches, including:
obtaining a receive touch value based on the application state by executing, after detecting the one or more touches, the delegate corresponding to the respective gesture recognizer;
when the receive touch value meets predefined criteria, processing the respective touch at the respective gesture recognizer; and
conditionally sending information corresponding to the respective touch to the software application in accordance with an outcome of the processing of the respective touch by the respective gesture recognizer and in accordance with the receive touch value determined by the delegate corresponding to the respective gesture recognizer; and
executing the software application in accordance with the outcome of the processing of the respective touch by the respective gesture recognizer.

### Claim 12 (depends on 11)

The computer readable storage medium of claim 11, wherein:
the plurality of views include a first plurality of gesture recognizers;
the software application includes instructions for assigning distinct delegates to at least a subset of the first plurality of gesture recognizers, the subset comprising a second plurality of gesture recognizers; and
the instructions for processing the respective touch of the one or more touches include instructions for:
identifying a set of candidate gesture recognizers of the plurality of gesture recognizers;
for each candidate gesture recognizer having an assigned delegate, executing the assigned delegate to obtain a receive touch value in accordance with the application state;
identifying one or more receiving gesture recognizers, comprising a subset of the candidate gesture recognizers, in accordance with the obtained receive touch values; and
processing the respective touch at each gesture recognizer of one or more of the receiving gesture recognizers.

### Claim 13 (depends on 12)

The computer readable storage medium of claim 12, wherein:
the instructions for processing the respective touch at each gesture recognizer of the one or more receiving gesture recognizers include instructions for:
processing the respective touch at a respective receiving gesture recognizer to which a delegate has been assigned in accordance with a respective gesture definition corresponding to the respective receiving gesture recognizer,
obtaining one or more values in accordance with the application state by executing the assigned delegate, and
conditionally sending the information corresponding to the respective touch to the software application in accordance with an outcome of the processing of the respective touch by the respective receiving gesture recognizer and in accordance with the one or more values obtained by executing the assigned delegate; and
the software application is configured to be executed in accordance with information, received from one or more of the receiving gesture recognizers, corresponding to one or more of the touches.

### Claim 14 (depends on 13)

The computer readable storage medium of claim 13, wherein the instructions for processing the respective touch at the respective receiving gesture recognizer include instructions for, when the detected touch is consistent with the respective gesture definition, conditionally enabling a corresponding state transition in the respective receiving gesture recognizer when the state transition is enabled by the assigned delegate.

### Claim 15 (depends on 13)

The computer readable storage medium of claim 13, wherein the software application includes instructions for processing the respective touch at the respective gesture recognizer and processing the respective touch at a second gesture recognizer, distinct from the respective receiving gesture recognizer, in accordance with one or more values determined by a delegate assigned to the second gesture recognizer.

### Claim 16 (depends on 13)

The computer readable storage medium of claim 13, wherein the software application includes instructions for processing the respective touch at the respective gesture recognizer and processing the respective touch at a second gesture recognizer, distinct from the respective receiving gesture recognizer, in accordance with one or more values determined by the delegate assigned to the respective receiving gesture recognizer.

### Claim 17 (depends on 13)

The computer readable storage medium of claim 13, wherein processing the respective touch at the respective receiving gesture recognizer includes processing the respective touch in accordance with one or more values determined by a delegate assigned to a second gesture recognizer distinct from the respective receiving gesture recognizer.

### Claim 18 (depends on 13)

The computer readable storage medium of claim 13, wherein a second delegate, distinct from the assigned delegate, is assigned to the respective receiving gesture recognizer, and wherein the second application include instructions for processing the respective touch at the respective receiving gesture recognizer and processing the respective touch at a second gesture recognizer, distinct from the respective receiving gesture recognizer, in accordance with one or more values determined by the second delegate assigned to the respective gesture recognizer.

### Claim 19 (depends on 11)

The computer readable storage medium of claim 11, wherein the corresponding delegate includes instructions for determining one or more event recognizer properties for the respective gesture recognizer.

### Claim 20 (depends on 11)

The computer readable storage medium of claim 11, wherein the corresponding delegate is configured to determine one or more of: whether the respective gesture recognizer is allowed to transition from an initial state of a state machine to another state; whether the respective gesture recognizer is allowed to simultaneously recognize the touch information as a corresponding gesture without blocking one or more other gesture recognizers from recognizing the event or being blocked by one or more other gesture recognizers recognizing the event; and whether the respective gesture recognizer is allowed to simultaneously recognize the touch information as a corresponding gesture without being blocked by the one or more other gesture recognizers recognizing the event.

### Claim 21

An electronic device, comprising:
a touch-sensitive surface;
one or more processors;
memory;
one or more programs stored in the memory and configured to be executed by the one or more processors, the one or more programs including a software application that includes a plurality of views and an application state of the software application, the software application including instructions for:
displaying one or more views of the plurality of views, wherein a respective view of the one or more displayed views includes one or more respective gesture recognizers, a respective gesture recognizer having a corresponding delegate;
detecting one or more touches, on the touch-sensitive surface, each having a touch position that falls within one or more of the displayed views;
processing a respective touch of the one or more touches, including:
obtaining a receive touch value based on the application state by executing, after detecting the one or more touches, the delegate corresponding to the respective gesture recognizer;
when the receive touch value meets predefined criteria, processing the respective touch at the respective gesture recognizer; and
conditionally sending information corresponding to the respective touch to the software application in accordance with an outcome of the processing of the respective touch by the respective gesture recognizer and in accordance with the receive touch value determined by the delegate corresponding to the respective gesture recognizer; and
executing the software application in accordance with the outcome of the processing of the respective touch by the respective gesture recognizer.

### Claim 22 (depends on 21)

The device of claim 21, wherein:
the plurality of views include a first plurality of gesture recognizers;
the software application includes instructions for assigning distinct delegates to at least a subset of the first plurality of gesture recognizers, the subset comprising a second plurality of gesture recognizers; and
the instructions for processing the respective touch of the one or more touches include instructions for:
identifying a set of candidate gesture recognizers of the plurality of gesture recognizers;
for each candidate gesture recognizer having an assigned delegate, executing the assigned delegate to obtain a receive touch value in accordance with the application state;
identifying one or more receiving gesture recognizers, comprising a subset of the candidate gesture recognizers, in accordance with the obtained receive touch values; and
processing the respective touch at each gesture recognizer of one or more of the receiving gesture recognizers.

### Claim 23 (depends on 22)

The device of claim 22, wherein:
the instructions for processing the respective touch at each gesture recognizer of the one or more receiving gesture recognizers include instructions for:
processing the respective touch at a respective receiving gesture recognizer to which a delegate has been assigned in accordance with a respective gesture definition corresponding to the respective receiving gesture recognizer,
obtaining one or more values in accordance with the application state by executing the assigned delegate, and
conditionally sending the information corresponding to the respective touch to the software application in accordance with an outcome of the processing of the respective touch by the respective receiving gesture recognizer and in accordance with the one or more values obtained by executing the assigned delegate; and
the software application is configured to be executed in accordance with information, received from one or more of the receiving gesture recognizers, corresponding to one or more of the touches.

### Claim 24 (depends on 23)

The device of claim 23, wherein the instructions for processing the respective touch at the respective receiving gesture recognizer include instructions for, when the detected touch is consistent with the respective gesture definition, conditionally enabling a corresponding state transition in the respective receiving gesture recognizer when the state transition is enabled by the assigned delegate.

### Claim 25 (depends on 23)

The device of claim 23, wherein the software application includes instructions for processing the respective touch at the respective receiving gesture recognizer and processing the respective touch at a second gesture recognizer, distinct from the respective receiving gesture recognizer, in accordance with one or more values determined by a delegate assigned to the second gesture recognizer.

### Claim 26 (depends on 23)

The device of claim 23, wherein the software application includes instructions for processing the respective touch at the respective receiving gesture recognizer and processing the respective touch at a second gesture recognizer, distinct from the respective receiving gesture recognizer, in accordance with one or more values determined by the delegate assigned to the respective receiving gesture recognizer.
