---
title: UIPencilInteraction
framework: uikit
role: symbol
role_heading: Class
path: uikit/uipencilinteraction
---

# UIPencilInteraction

An interaction that tells your app when a person double-taps or squeezes Apple Pencil.

## Declaration

```swift
@MainActor class UIPencilInteraction
```

## Overview

Overview People can interact with certain models of Apple Pencil with a double tap or squeeze. To detect the double tap or squeeze in your app, create a UIPencilInteraction object with a corresponding delegate object. Then, add the interaction to your app’s view. When a person double-taps or squeezes Apple Pencil, the interaction calls the delegate’s corresponding pencilInteraction(_:didReceiveTap:) or pencilInteraction(_:didReceiveSqueeze:) method. For more information, read Handling double taps from Apple Pencil and Handling squeezes from Apple Pencil.

## Topics

### Creating interactions

- [init(delegate:)](uikit/uipencilinteraction/init(delegate:).md)

### Handling interactions

- [delegate](uikit/uipencilinteraction/delegate.md)
- [UIPencilInteractionDelegate](uikit/uipencilinteractiondelegate.md)

### Enabling interactions

- [isEnabled](uikit/uipencilinteraction/isenabled.md)

### Determining preferences for actions

- [preferredTapAction](uikit/uipencilinteraction/preferredtapaction.md)
- [preferredSqueezeAction](uikit/uipencilinteraction/preferredsqueezeaction.md)
- [UIPencilPreferredAction](uikit/uipencilpreferredaction.md)

### Determining input type

- [prefersPencilOnlyDrawing](uikit/uipencilinteraction/preferspencilonlydrawing.md)

### Determining hover preview preferences

- [prefersHoverToolPreview](uikit/uipencilinteraction/prefershovertoolpreview.md)

### Supporting types

- [UIPencilInteraction.Tap](uikit/uipencilinteraction/tap.md)
- [UIPencilInteraction.Squeeze](uikit/uipencilinteraction/squeeze.md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [Sendable](swift/sendable.md)
- [UIInteraction](uikit/uiinteraction.md)

## See Also

### Apple Pencil interactions in UIKit

- [UIPencilInteractionDelegate](uikit/uipencilinteractiondelegate.md)
- [UIPencilInteraction.Tap](uikit/uipencilinteraction/tap.md)
- [UIPencilInteraction.Squeeze](uikit/uipencilinteraction/squeeze.md)
- [UIPencilInteraction.Phase](uikit/uipencilinteraction/phase.md)
- [UIPencilHoverPose](uikit/uipencilhoverpose.md)
