Class

UITouch

A UITouch object represents the location, size, movement, and force of a finger on the screen for a particular event. The force of a touch is available starting in iOS 9 on devices that support 3D Touch or Apple Pencil.

Overview

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

A touch object persists throughout a multi-touch sequence. Never retain a touch object when handling an event. If you need to keep information about a touch from one touch phase to another, 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.

Symbols

Getting the Location of a Touch

func location(in: UIView?)

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

func previousLocation(in: UIView?)

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

var view: UIView?

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

var window: UIWindow?

The window in which the touch initially occurred.

var majorRadius: CGFloat

The radius (in points) of the touch.

var majorRadiusTolerance: CGFloat

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

func preciseLocation(in: UIView?)

Returns a precise location for the touch, when available.

func precisePreviousLocation(in: UIView?)

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

Getting Touch Attributes

var tapCount: Int

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

var timestamp: TimeInterval

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

var type: UITouchType

The type of the touch.

var phase: UITouchPhase

The phase of the touch.

var force: CGFloat

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).

var maximumPossibleForce: CGFloat

The maximum possible force for a touch.

var altitudeAngle: CGFloat

The altitude (in radians) of the stylus.

func azimuthAngle(in: UIView?)

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

func azimuthUnitVector(in: UIView?)

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

var estimatedProperties: UITouchProperties

A set of touch properties that will get updated.

var estimationUpdateIndex: NSNumber?

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

var estimatedPropertiesExpectingUpdates: UITouchProperties

A set of touch properties that expect to have incoming updates in the future.

Getting a Touch Object’s Gesture Recognizers

var gestureRecognizers: [UIGestureRecognizer]?

The gesture recognizers that are receiving the touch object.

Working with Touch Events in Sprite Kit

func location(in: SKNode)

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

func previousLocation(in: SKNode)

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

Constants

UITouchType

The type of touch received.

UITouchProperties

A bit mask of touch properties that may get updated.

UITouchPhase

The phase of a finger touch.

Relationships

Inherits From

Conforms To