One Logo Pool Ball
Graphics and Games · IOS API REFERENCE

PencilKit

Capture touch and Apple Pencil input as a drawing, and display that content from your app.

56 types

316 callable entries

21 skipped

94% entry coverage

Generated from iOS SDK 27.1. Availability is shown on each declaration; permissions and entitlements still apply.

Types

PKCanvasView

class · iOS 13.0+

PKCanvasViewDelegate

protocol · iOS 13.0+

PKCanvasViewDrawingPolicy

enum

PKContentVersion

enum · iOS 17.0+

PKConvertedBezierPointReference

class · iOS 27.0+

PKDrawing

struct · iOS 13.0+

PKDrawingReference

class · iOS 13.0+

PKEraserTool

struct · iOS 13.0+

PKEraserTool.EraserType

enum · iOS 13.0+

PKEraserToolReference

class · iOS 13.0+

PKInk

struct · iOS 14.0+

PKInk.InkType

typealias · iOS 14.0+

PKInkingTool

struct · iOS 13.0+

PKInkingTool.InkType

enum · iOS 13.0+

PKInkingTool.InkType.RawValue

typealias · iOS 13.0+

PKInkingToolReference

class · iOS 13.0+

PKInkReference

class · iOS 14.0+

PKLassoTool

struct · iOS 13.0+

PKLassoToolReference

class · iOS 13.0+

PKResponderState

class · iOS 26.0+

PKStroke

struct · iOS 14.0+

PKStroke.ID

typealias · iOS 27.0+

PKStroke.RenderState

struct · iOS 27.0+

PKStrokePath

struct · iOS 14.0+

PKStrokePath.ConvertedBezierPoint

struct · iOS 27.0+

PKStrokePath.Element

typealias · iOS 14.0+

PKStrokePath.ID

typealias · iOS 27.0+

PKStrokePath.Index

typealias · iOS 14.0+

PKStrokePath.Indices

typealias · iOS 14.0+

PKStrokePath.InterpolatedSlice

struct · iOS 14.0+

PKStrokePath.InterpolatedSlice.Element

typealias · iOS 14.0+

PKStrokePath.InterpolatedSlice.Iterator

typealias · iOS 14.0+

PKStrokePath.InterpolatedSlice.Stride

enum · iOS 14.0+

PKStrokePath.Iterator

typealias · iOS 14.0+

PKStrokePath.SubSequence

typealias · iOS 14.0+

PKStrokePathReference

class · iOS 14.0+

PKStrokePoint

struct · iOS 14.0+

PKStrokePointReference

class · iOS 14.0+

PKStrokeRecognizer

class · iOS 27.0+

PKStrokeRecognizer.SearchResult

struct · iOS 27.0+

PKStrokeReference

class · iOS 14.0+

PKStrokeRenderStateReference

class · iOS 27.0+

PKTool

protocol · iOS 13.0+

PKToolPicker

class · iOS 13.0+

PKToolPicker.Delegate

protocol · iOS 18.0+

PKToolPickerCustomItem

class · iOS 18.0+

PKToolPickerCustomItem.Configuration

struct · iOS 18.0+

PKToolPickerCustomItem.ControlOptions

struct · iOS 18.0+

PKToolPickerEraserItem

class · iOS 18.0+

PKToolPickerInkingItem

class · iOS 18.0+

PKToolPickerItem

class · iOS 18.0+

PKToolPickerLassoItem

class · iOS 18.0+

PKToolPickerObserver

protocol · iOS 13.0+

PKToolPickerRulerItem

class · iOS 18.0+

PKToolPickerScribbleItem

class · iOS 18.0+

PKToolPickerVisibility

enum · iOS 26.0+

Functions and constants

get · iOS 13.0+

PKAppleDrawingTypeIdentifier

TypeScript
const PKAppleDrawingTypeIdentifier: _CoreFoundation_CFString
Swift declaration
let PKAppleDrawingTypeIdentifier: CFString
get · iOS 26.0+

pencilKitResponderState

TypeScript
get pencilKitResponderState(): Promise<PKResponderState>
Swift declaration
var pencilKitResponderState: PKResponderState { get }

Skipped declarations

21 declarations were excluded from these bindings. Each reason comes from the generator or the iOS SDK compiler.

PKStrokeRecognizer.drawing

The iOS SDK compiler rejected this binding: actor-isolated property 'drawing' can not be referenced from a nonisolated context

PKStrokeRecognizer.languages

The iOS SDK compiler rejected this binding: actor-isolated property 'languages' can not be referenced from a nonisolated context

PKToolPickerCustomItem.Configuration.imageProvider

closure property answers its caller

PKToolPickerCustomItem.Configuration.viewControllerProvider

closure property answers its caller

PKStrokePath.init(bezierPath:creationDate:pointProvider:)

callback cannot propagate synchronous failure

PKStrokePathReference.init(bezierPath:creationDate:pointProvider:)

callback cannot propagate synchronous failure

PKStrokePathReference.enumerateInterpolatedPoints(in:strideByDistance:using:)

synchronous callback requires a nonescaping JS-thread call

PKStrokePathReference.enumerateInterpolatedPoints(in:strideByTime:using:)

synchronous callback requires a nonescaping JS-thread call

PKStrokePathReference.enumerateInterpolatedPoints(in:strideByParametricStep:using:)

synchronous callback requires a nonescaping JS-thread call

PKToolPickerInkingItem.init()

inherited init: cannot prove legal (class declares 2 custom initializers)

PKStrokePointReference.init()

inherited init: cannot prove legal (class declares 4 custom initializers)

PKStrokeReference.init()

inherited init: cannot prove legal (class declares 3 custom initializers)

PKStrokeRenderStateReference.init()

inherited init: cannot prove legal (class declares 1 custom initializer)

PKInkReference.init()

inherited init: cannot prove legal (class declares 1 custom initializer)

PKToolPickerCustomItem.init()

inherited init: cannot prove legal (class declares 1 custom initializer)

PKToolPickerEraserItem.init()

inherited init: cannot prove legal (class declares 2 custom initializers)

PKToolPickerItem.init()

inherited init: clang: 'init' is unavailable

PKConvertedBezierPointReference.init()

inherited init: clang: 'init' is unavailable

PKStrokePathReference.init()

inherited init: cannot prove legal (class declares 3 custom initializers)

protocol implementation PKCanvasViewDelegate.viewForZooming(in:)

synchronous protocol result requires an active JS-thread call; delegate invocations can escape it

protocol implementation PKCanvasViewDelegate.scrollViewShouldScrollToTop(_:)

synchronous protocol result requires an active JS-thread call; delegate invocations can escape it