# US 10,481,785 B2 · Application programming interfaces for scrolling operations

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

- Number: US 10,481,785 B2
- Document ID: US10481785B2
- Status: Granted
- Kind: B2
- Application number: 15/665,167
- Filed: 2017-07-31
- Published: 2018-01-11
- Granted: 2019-11-19
- Earliest claimed: 2007-01-07
- Assignees: Apple Inc.
- Applicants: Apple Inc.
- Inventors: Andrew Platzer; Scott Herz
- Web page: https://patentgrep.com/patent/US10481785B2

## CPC

- G06F 3/0485: Scrolling or panning
- G06F 3/04845: for image manipulation, e.g. dragging, rotation, expansion or change of colour
- G06F 3/0488: using a touch-screen or digitiser, e.g. input of commands through traced gestures
- G06F 3/04883: for inputting data by handwriting, e.g. gesture or text
- G06F 2203/04808: Several contacts: gestures triggering a specific function, e.g. scrolling, zooming, right-click, when the user establishes several contacts with the surface simultaneously; e.g. using several fingers or a combination of fingers and pen
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

At least certain embodiments of the present disclosure include an environment with user interface software interacting with a software application. A method for operating through an application programming interface (API) in this environment includes transferring a set bounce call. The method further includes setting at least one of maximum and minimum bounce values. The set bounce call causes a bounce of a scrolled region in an opposite direction of a scroll based on a region past an edge of the scrolled region being visible in a display region at the end of the scroll.

## Claims

### Claim 1

A non-transitory computer-readable storage medium storing executable program instructions, which when executed by an electronic device with a processor and a touch-sensitive display, cause the device to:
receive a user input, the user input is one or more input points applied to the touch-sensitive display that is integrated with the device;
create an event object in response to the user input;
determine whether the event object invokes a scroll or gesture operation by distinguishing between a single input point applied to the touch-sensitive display that is interpreted as the scroll operation and two and more input points applied to the touch-sensitive display that are interpreted as the gesture operation;
issue at least one scroll or gesture call based on invoking the scroll or gesture operation;
respond to at least one scroll call, if issued, by scrolling a window having a view associated with the event object based on an amount of a scroll with the scroll stopped at a predetermined position in relation to the user input; and
respond to at least one gesture call, if issued, by scaling the view associated with the event object based on receiving the two and more input points in the form of the user input.

### Claim 2 (depends on 1)

The medium of claim 1, wherein the executable program instructions, when executed by the device, further cause the device to:
while the scroll operation is invoked:
in accordance with a determination that an angle formed by the user input with a horizontal line on the touch-sensitive display is less than a threshold angle, lock the scrolling in a horizontal direction; and
in accordance with a determination that an angle formed by the user input with a vertical line on the touch-sensitive display is less than the threshold angle, lock the scrolling in a vertical direction.

### Claim 3 (depends on 1)

The medium of claim 1, wherein the executable program instructions, when executed by the device, further cause the device to:
while the scroll operation is invoked:
scroll a window associated with the event object;
rubberband a scrolled region of the window by a predetermined maximum displacement value as the scrolled region exceeds an edge of the window; and
bounce the scrolled region in an opposite direction of the scroll in response to termination of the user input.

### Claim 4 (depends on 1)

The medium of claim 1, wherein the executable program instructions, when executed by the device, further cause the device to:
while the operation gesture invoked is a scaling operation:
scale a view associated with the event object while maintaining a center of the view as a center of the scaled view.

### Claim 5 (depends on 1)

The medium of claim 1, wherein the executable program instructions, when executed by the device, further cause the device to:
while the operation gesture invoked is a scaling operation:
scale a view associated with the event object based on a scale factor that is within a range of a minimum scale factor and a maximum scale factor, the minimum and maximum scale factors being associated with the event object, wherein the scale factor is determined based on movement of the plurality of input points of the user input on the touch-sensitive display.

### Claim 6 (depends on 1)

The medium of claim 1, wherein the executable program instructions, when executed by the device, further cause the device to:
while the operation gesture invoked is a rotating operation:
rotate a view associated with the event object by a rotation angle that is within a range of a minimum rotation angle and a maximum rotation angle, the minimum and maximum rotation angles being associated with the event object, wherein the rotation angle is determined based on movement of the plurality of input points of the user input on the touch-sensitive display.

### Claim 7

An electronic device, comprising:
a touch-sensitive display;
one or more processors;
a memory storing executable program instructions, which when executed by the one or more processors, cause the device to:
receive a user input, the user input is one or more input points applied to the touch-sensitive display that is integrated with the device;
create an event object in response to the user input;
determine whether the event object invokes a scroll or gesture operation by distinguishing between a single input point applied to the touch-sensitive display that is interpreted as the scroll operation and two and more input points applied to the touch-sensitive display that are interpreted as the gesture operation;
issue at least one scroll or gesture call based on invoking the scroll or gesture operation;
respond to at least one scroll call, if issued, by scrolling a window having a view associated with the event object based on an amount of a scroll with the scroll stopped at a predetermined position in relation to the user input; and
respond to at least one gesture call, if issued, by scaling the view associated with the event object based on receiving the two and more input points in the form of the user input.

### Claim 8 (depends on 7)

The device of claim 7, wherein the executable program instructions, when executed by the one or more processors, further cause the device to:
while the scroll operation is invoked:
in accordance with a determination that an angle formed by the user input with a horizontal line on the touch-sensitive display is less than a threshold angle, lock the scrolling in a horizontal direction; and
in accordance with a determination that an angle formed by the user input with a vertical line on the touch-sensitive display is less than the threshold angle, lock the scrolling in a vertical direction.

### Claim 9 (depends on 7)

The device of claim 7, wherein the executable program instructions, when executed by the one or more processors, further cause the device to:
while the scroll operation is invoked:
scroll a window associated with the event object;
rubberband a scrolled region of the window by a predetermined maximum displacement value as the scrolled region exceeds an edge of the window; and
bounce the scrolled region in an opposite direction of the scroll in response to termination of the user input.

### Claim 10 (depends on 7)

The device of claim 7, wherein the executable program instructions, when executed by the one or more processors, further cause the device to:
while the operation gesture invoked is a scaling operation:
scale a view associated with the event object while maintaining a center of the view as a center of the scaled view.

### Claim 11 (depends on 7)

The device of claim 7, wherein the executable program instructions, when executed by the one or more processors, further cause the device to:
while the operation gesture invoked is a scaling operation:
scale a view associated with the event object based on a scale factor that is within a range of a minimum scale factor and a maximum scale factor, the minimum and maximum scale factors being associated with the event object, wherein the scale factor is determined based on movement of the plurality of input points of the user input on the touch-sensitive display.

### Claim 12 (depends on 7)

The device of claim 7, wherein the executable program instructions, when executed by the one or more processors, further cause the device to:
while the operation gesture invoked is a rotating operation:
rotate a view associated with the event object by a rotation angle that is within a range of a minimum rotation angle and a maximum rotation angle, the minimum and maximum rotation angles being associated with the event object, wherein the rotation angle is determined based on movement of the plurality of input points of the user input on the touch-sensitive display.

### Claim 13

A method, comprising:
at an electronic device with a touch-sensitive display:
receiving a user input, the user input is one or more input points applied to the touch-sensitive display that is integrated with the device;
creating an event object in response to the user input;
determining whether the event object invokes a scroll or gesture operation by distinguishing between a single input point applied to the touch-sensitive display that is interpreted as the scroll operation and two and more input points applied to the touch-sensitive display that are interpreted as the gesture operation;
issuing at least one scroll or gesture call based on invoking the scroll or gesture operation;
responding to at least one scroll call, if issued, by scrolling a window having a view associated with the event object based on an amount of a scroll with the scroll stopped at a predetermined position in relation to the user input; and
responding to at least one gesture call, if issued, by scaling the view associated with the event object based on receiving the two and more input points in the form of the user input.

### Claim 14 (depends on 13)

The method of claim 13, further comprising:
while the scroll operation is invoked:
in accordance with a determination that an angle formed by the user input with a horizontal line on the touch-sensitive display is less than a threshold angle, locking the scrolling in a horizontal direction; and
in accordance with a determination that an angle formed by the user input with a vertical line on the touch-sensitive display is less than the threshold angle, locking the scrolling in a vertical direction.

### Claim 15 (depends on 13)

The method of claim 13, further comprising:
while the scroll operation is invoked:
scrolling a window associated with the event object;
rubberbanding a scrolled region of the window by a predetermined maximum displacement value as the scrolled region exceeds an edge of the window; and
bouncing the scrolled region in an opposite direction of the scroll in response to termination of the user input.

### Claim 16 (depends on 13)

The method of claim 13, further comprising:
while the operation gesture invoked is a scaling operation:
scaling a view associated with the event object while maintaining a center of the view as a center of the scaled view.

### Claim 17 (depends on 13)

The method of claim 13, further comprising:
while the operation gesture invoked is a scaling operation:
scaling a view associated with the event object based on a scale factor that is within a range of a minimum scale factor and a maximum scale factor, the minimum and maximum scale factors being associated with the event object, wherein the scale factor is determined based on movement of the plurality of input points of the user input on the touch-sensitive display.

### Claim 18 (depends on 13)

The method of claim 13, further comprising:
while the operation gesture invoked is a rotating operation:
rotating a view associated with the event object by a rotation angle that is within a range of a minimum rotation angle and a maximum rotation angle, the minimum and maximum rotation angles being associated with the event object, wherein the rotation angle is determined based on movement of the plurality of input points of the user input on the touch-sensitive display.
