<!--
{
  "availability" : [
    "iOS: 2.0.0 -",
    "iPadOS: 2.0.0 -",
    "macCatalyst: 13.1.0 -",
    "tvOS: -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "UIKit",
  "identifier" : "/documentation/UIKit/UITouch",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "UIKit"
    ],
    "preciseIdentifier" : "c:objc(cs)UITouch"
  },
  "title" : "UITouch"
}
-->

# UITouch

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

```
@MainActor class UITouch
```

## Overview

You access touch objects through [`UIEvent`](/documentation/UIKit/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](https://developer.apple.com/library/archive/documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/multitouch_background/multitouch_background.html#//apple_ref/doc/uid/TP40009541-CH5-SW21) in [Event Handling Guide for UIKit Apps](https://developer.apple.com/library/archive/documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/index.html#//apple_ref/doc/uid/TP40009541).

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`](/documentation/UIKit/UITouch/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`](/documentation/UIKit/UIGestureRecognizer).

## Topics

### Getting the location of a touch

[`location(in:)`](/documentation/UIKit/UITouch/location(in:)-8rd36)

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

[`previousLocation(in:)`](/documentation/UIKit/UITouch/previousLocation(in:)-22sws)

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

[`view`](/documentation/UIKit/UITouch/view)

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

[`window`](/documentation/UIKit/UITouch/window)

The window in which the touch initially occurred.

[`majorRadius`](/documentation/UIKit/UITouch/majorRadius)

The radius (in points) of the touch.

[`majorRadiusTolerance`](/documentation/UIKit/UITouch/majorRadiusTolerance)

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

[`preciseLocation(in:)`](/documentation/UIKit/UITouch/preciseLocation(in:))

Returns a precise location for the touch, when available.

[`precisePreviousLocation(in:)`](/documentation/UIKit/UITouch/precisePreviousLocation(in:))

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

### Getting touch attributes

[`tapCount`](/documentation/UIKit/UITouch/tapCount)

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

[`timestamp`](/documentation/UIKit/UITouch/timestamp)

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

[`type`](/documentation/UIKit/UITouch/type)

The type of the touch.

[`UITouch.TouchType`](/documentation/UIKit/UITouch/TouchType)

The type of touch received.

[`phase`](/documentation/UIKit/UITouch/phase-swift.property)

The phase of the touch.

[`UITouch.Phase`](/documentation/UIKit/UITouch/Phase-swift.enum)

The phase of a touch event.

[`force`](/documentation/UIKit/UITouch/force)

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

[`maximumPossibleForce`](/documentation/UIKit/UITouch/maximumPossibleForce)

The maximum possible force for a touch.

[`altitudeAngle`](/documentation/UIKit/UITouch/altitudeAngle)

The altitude (in radians) of the stylus.

[`azimuthAngle(in:)`](/documentation/UIKit/UITouch/azimuthAngle(in:))

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

[`azimuthUnitVector(in:)`](/documentation/UIKit/UITouch/azimuthUnitVector(in:))

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

[`rollAngle`](/documentation/UIKit/UITouch/rollAngle)

A value that represents the current barrel-roll angle of Apple Pencil.

### Managing estimated touch attributes

[`estimatedProperties`](/documentation/UIKit/UITouch/estimatedProperties)

A set of touch properties whose values contain only estimates.

[`estimatedPropertiesExpectingUpdates`](/documentation/UIKit/UITouch/estimatedPropertiesExpectingUpdates)

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

[`UITouch.Properties`](/documentation/UIKit/UITouch/Properties)

A bit mask of touch properties that may get updated.

[`estimationUpdateIndex`](/documentation/UIKit/UITouch/estimationUpdateIndex)

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

### Getting a touch object’s gesture recognizers

[`gestureRecognizers`](/documentation/UIKit/UITouch/gestureRecognizers)

The gesture recognizers that are receiving the touch object.

### Working with touch events in SpriteKit

[`location(in:)`](/documentation/UIKit/UITouch/location(in:)-44h4k)

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

[`previousLocation(in:)`](/documentation/UIKit/UITouch/previousLocation(in:)-ea29)

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



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)