<!--
{
  "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/UIResponder/touchesMoved(_:with:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "UIKit"
    ],
    "preciseIdentifier" : "c:objc(cs)UIResponder(im)touchesMoved:withEvent:"
  },
  "title" : "touchesMoved(_:with:)"
}
-->

# touchesMoved(_:with:)

Tells the responder when one or more touches associated with an event changed.

```
func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?)
```

## Parameters

`touches`

A set of [`UITouch`](/documentation/UIKit/UITouch) instances that represent the touches whose values changed. These touches all belong to the specified `event`. For touches in a view, this set contains only one touch by default. To receive multiple touches, you must set the view’s [`isMultipleTouchEnabled`](/documentation/UIKit/UIView/isMultipleTouchEnabled) property to <doc://com.apple.documentation/documentation/Swift/true>.

`event`

The event to which the touches belong.

## Discussion

UIKit calls this method when the location or force of a touch changes. Many UIKit classes override this method and use it to handle the corresponding touch events. The default implementation of this method forwards the message up the responder chain. When creating your own subclasses, call `super` to forward any events that you don’t handle yourself, like in the following code.

```objc
[super touchesMoved:touches withEvent:event];
```

If you override this method without calling `super` (a common use pattern), you must also override the other methods for handling touch events, even if your implementations do nothing.

> Note:
> In iOS 17, Messages allows you to interactively resize iMessage apps with a vertical pan gesture. Messages handles any conflicts between resize gestures and your custom gestures. If your app uses manual touch handling, override those methods in your app’s ``doc://com.apple.uikit/documentation/UIKit/UIView``. You can either change your manual touch handling code to use a gesture recognizer instead, or your ``doc://com.apple.uikit/documentation/UIKit/UIView`` can override ``doc://com.apple.uikit/documentation/UIKit/UIGestureRecognizerDelegate/gestureRecognizerShouldBegin(_:)`` and return NO when your iMessage app doesn’t own the gesture.

---

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)