An object representing the location, size, movement, and force of a touch occurring on the screen.


@interface UITouch : NSObject


You access touch objects through UIEvent objects passed into responder objects for event handling. A touch object includes accessors for:

  • The view or window in which the touch occurred

  • The location of the touch within the view or window

  • The approximate radius of the touch

  • The force of the touch (on devices that support 3D Touch or Apple Pencil)

A touch object also contains a timestamp indicating when the touch occurred, an integer representing the number of times the user tapped the screen, and the phase of the touch in the form of a constant that describes whether the touch began, moved, or ended, or whether the system canceled the touch.

To learn how to work with swipes, read Handling Swipe and Drag Gestures in Event Handling Guide for UIKit Apps.

A touch object persists throughout a multi-touch sequence. You may store a reference to a touch while handling a multi-touch sequence, as long as you release that reference when the sequence ends. If you need to store information about a touch outside of a multi-touch sequence, copy that information from the touch.

The gestureRecognizers property of a touch contains the gesture recognizers currently handling the touch. Each gesture recognizer is an instance of a concrete subclass of UIGestureRecognizer.


Getting the Location of a Touch

- locationInView:

Returns the current location of the receiver in the coordinate system of the given view.

- previousLocationInView:

Returns the previous location of the receiver in the coordinate system of the given view.


The view to which touches are being delivered, if any.


The window in which the touch initially occurred.


The radius (in points) of the touch.


The tolerance (in points) of the touch’s radius.

- preciseLocationInView:

Returns a precise location for the touch, when available.

- precisePreviousLocationInView:

Returns a precise previous location for the touch, when available.

Getting Touch Attributes


The number of times the finger was tapped for this given touch.


The time when the touch occurred or when it was last mutated.


The type of the touch.


The type of touch received.


The phase of the touch.


The phase of a finger touch.


The force of the touch, where a value of 1.0 represents the force of an average touch (predetermined by the system, not user-specific).


The maximum possible force for a touch.


The altitude (in radians) of the stylus.

- azimuthAngleInView:

Returns the azimuth angle (in radians) of the stylus.

- azimuthUnitVectorInView:

Returns a unit vector that points in the direction of the azimuth of the stylus.

Managing Estimated Touch Attributes


A set of touch properties whose values contain only estimates.


The set of touch properties for which updated values are expected in the future.


A bit mask of touch properties that may get updated.


An index number that lets you correlate an updated touch with the original touch.

Getting a Touch Object’s Gesture Recognizers


The gesture recognizers that are receiving the touch object.

Working with Touch Events in Sprite Kit

- locationInNode:

Returns the current location of the receiver in the coordinate system of the given node.

- previousLocationInNode:

Returns the previous location of the receiver in the coordinate system of the given node.


Inherits From

See Also


Handling Touches in Your View

Use touch events directly on a view subclass if touch handling is intricately linked to the view's content.

Handling Input from Apple Pencil

Learn how to detect and respond to touches from Apple Pencil.

Tracking the Force of 3D Touch Events

Manipulate your content based on the force of touches.

Leveraging Touch Input for Drawing Apps

Capture touches as a series of strokes and render them efficiently on a drawing canvas.