用途:PaperKit 提供交互式文档画布,同时承载 PencilKit 的矢量笔迹与结构化文档标注,适合需要在文档编辑器中放置形状、输入文字、便签或签名的场景。纯手绘速写、仅绘图画布或需支持 iOS 17 及更早版本时,应使用 PencilKit。
主要能力:核心组件包括 PaperMarkupViewController(可滚动的交互式标注画布)、PaperMarkup(可序列化的文档模型,表示画布元素与边界)、MarkupEditViewController(插入形状、文字、箭头、签名的系统 UI)、MarkupToolbarViewController(桌面与 iPad 上的工具栏控制器)以及 FeatureSet(声明所支持工具与元素类型的能力配置)。序列化通过 markup.dataRepresentation() 保存与恢复;缩略图可在非主线程生成栅格预览,以加快文档列表加载;使用 FeatureSet.latest 或指定子集初始化控制器,可避免向前兼容的加载错误。
使用方式:按任务分流查阅文档——完整的 UIKit 搭建、委托生命周期与嵌入父控制器见 PaperMarkupViewController Setup;SwiftUI 经 UIViewControllerRepresentable 集成见 SwiftUI PaperKit Integration;自定义工具选择器与第一响应者管理见 Tool Picker Coordination;文档序列化、缩略图与向后兼容见 Persistence and Thumbnails。
限制与注意事项:PaperKit 处于 Beta 敏感期,生产发布前需核对可用性守卫与 SDK 版本;部署到更早系统时须加 @available(iOS 26.0, *) 检查。常见错误包括插入控制器未锚定到有效的 bar button 或 source rect、SwiftUI 每次更新都重建 PaperMarkupViewController 而非使用 coordinator 模式、在主线程同步序列化大型多元素文档、未同步 PaperMarkup 与宿主视图布局的文档边界。评审清单还要求将 PKToolPicker 作为观察者加入画布控制器,并将撤销重做接入画布的 UndoManager。