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

# UIPointerInteraction

An interaction that enables support for effects on a view or customizes the pointer’s appearance within a region of an app.

```
@MainActor class UIPointerInteraction
```

## Overview

If you use a [`UIButton`](/documentation/UIKit/UIButton) as an interface object, use the button’s [`isPointerInteractionEnabled`](/documentation/UIKit/UIButton/isPointerInteractionEnabled) and [`pointerStyleProvider`](/documentation/UIKit/UIButton/pointerStyleProvider-1d4d2) to customize the proposed effect before constructing your own custom pointer effect using a [`UIPointerInteraction`](/documentation/UIKit/UIPointerInteraction).

> Note:
> In iPadOS, the visual interactions when using mouse or trackpad input versus Apple Pencil input are slightly different: For example, pointer styles such as the system pointer aren’t visible while using Apple Pencil. However, both input devices support effect-based pointers, but have a slightly different visual appearance depending on which device is in use.

## Topics

### Create pointer interactions

[`init(delegate:)`](/documentation/UIKit/UIPointerInteraction/init(delegate:))

Initializes a pointer interaction object with a specified delegate object.

### Manage pointer interactions

[`delegate`](/documentation/UIKit/UIPointerInteraction/delegate)

An object that responds to pointer movements.

[`UIPointerInteractionDelegate`](/documentation/UIKit/UIPointerInteractionDelegate)

An interface for handling pointer movements within the interaction’s view.

### Activate pointer interactions

[`isEnabled`](/documentation/UIKit/UIPointerInteraction/isEnabled)

A Boolean value that indicates whether the pointer interaction is an enabled state.

### Trigger a pointer update

[`invalidate()`](/documentation/UIKit/UIPointerInteraction/invalidate())

Causes the interaction to update the pointer in response to an event.



---

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)