用途:PaperKit 把 PencilKit 手绘与结构化标记元素(形状、文本、图片、线条)整合到由 PaperMarkupViewController 管理的画布中,适合在文档、PDF 或图片上做批注与审阅标记。该框架为 Beta 敏感,API 可能变化,上线前需核对 Apple 最新文档。
主要能力:PaperMarkupViewController 提供可滚动画布,支持自由手绘与结构化元素,遵循 Observable 与 PKToolPickerObserver;PaperMarkup 是可序列化的数据模型,保存全部标记与 PencilKit 绘图;MarkupEditViewController(iOS/iPadOS/Catalyst/visionOS)与 MarkupToolbarViewController(macOS/Catalyst)提供插入 UI。支持文本、图片、形状(矩形、圆角矩形、椭圆、线条、箭头、星形、气泡、正多边形)、线条端点标记,以及 append 合并 PaperMarkup 或 PKDrawing、仿射变换、移除不支持内容等操作。
使用方式:import PaperKit;用 PaperMarkup(bounds:) 创建模型,构造 PaperMarkupViewController(markup:supportedFeatureSet:) 并设置 delegate;用 PKToolPicker 配置绘图工具并保留为存储属性;通过 dataRepresentation() 异步保存,用 PaperMarkup(dataRepresentation:) 加载。FeatureSet 控制可用功能(.latest、.version1、.empty 或自定义增删),视图、插入控制器与保存文档须使用同一 FeatureSet。SwiftUI 中可用 UIViewControllerRepresentable 包装。
适用场景与限制:适合结构化审阅标记与系统标准插入 UI;若依赖自定义笔刷、原始 PKDrawing/PKStroke 分析或自定义套索编辑,不应以 PaperKit 替代 PKCanvasView。平台要求 iOS 26.0+、iPadOS 26.0+、Mac Catalyst 26.0+、macOS 26.0+、visionOS 26.0+,无需额外权限或 Info.plist 配置。加载保存数据时需检查内容版本兼容性,序列化应放在异步上下文并防抖自动保存。具体收费与价格暂未提供。