<!--
{
  "availability" : [
    "iOS: 9.1.0 -",
    "iPadOS: 9.1.0 -",
    "macCatalyst: 13.1.0 -",
    "tvOS: 9.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "UIKit",
  "identifier" : "/documentation/UIKit/UIGestureRecognizer/touchesEstimatedPropertiesUpdated(_:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "UIKit"
    ],
    "preciseIdentifier" : "c:objc(cs)UIGestureRecognizer(im)touchesEstimatedPropertiesUpdated:"
  },
  "title" : "touchesEstimatedPropertiesUpdated(_:)"
}
-->

# touchesEstimatedPropertiesUpdated(_:)

Sent to the gesture recognizer when the estimated properties for a touch have changed so that they are no longer estimated, or an update is no longer expected.

```
func touchesEstimatedPropertiesUpdated(_ touches: Set<UITouch>)
```

## Parameters

`touches`

The array of [`UITouch`](/documentation/UIKit/UITouch) objects containing updated properties.

## Discussion

The default implementation of this method does nothing. Subclasses may override it and use it to process updates to touches.

UIKit calls this method to report updates to properties that were previously declared to be estimates through [`touchesBegan(_:with:)`](/documentation/UIKit/UIGestureRecognizer/touchesBegan(_:with:)),  [`touchesMoved(_:with:)`](/documentation/UIKit/UIGestureRecognizer/touchesMoved(_:with:)) or [`touchesEnded(_:with:)`](/documentation/UIKit/UIResponder/touchesEnded(_:with:)), and where declared to expect updates by having at least one property set in [`estimatedPropertiesExpectingUpdates`](/documentation/UIKit/UITouch/estimatedPropertiesExpectingUpdates).

Use the [`estimationUpdateIndex`](/documentation/UIKit/UITouch/estimationUpdateIndex) property to correlate the previous state of the touch with the updated state incoming in this method. The updated values are denoted by having a cleared state in the [`estimatedPropertiesExpectingUpdates`](/documentation/UIKit/UITouch/estimatedPropertiesExpectingUpdates) bit mask. Although most properties end up with a cleared [`estimatedProperties`](/documentation/UIKit/UITouch/estimatedProperties) flag, a property can stay in the estimated state because of hardware considerations. This behavior allows the client to decide to replace the estimate with a more domain-specific estimate, based on the other touches it receives.

---

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)