大多数浏览器和
Developer App 均支持流媒体播放。
-
PencilKit 的新功能
PencilKit 可以助你在 iPad app 中提升创作、书写、绘画以及动画制作能力。了解关于绘画及注释框架的最新改进,并探索如何运用类似 PKToolPicker、PKCanvasView 及 PKStroke 的 API 来支持绘图及书写 app 中的新特征。若想充分掌握本部分内容,需要对 PencilKit 拥有基本的理解。若想补充了解相关内容,可参阅 WWDC19 中的“PencilKit 介绍”。
资源
相关视频
WWDC20
WWDC19
-
下载
(你好 WWDC 2020)
你好 欢迎来到 WWDC (PencilKit 的创新) 嗨 我是 Jenny Pencil and Paper 团队的一名工程师 欢迎来到“PencilKit 的创新”单元 在 iOS 13 上 我们最早采用了 PencilKit 这样一个全新的框架 为了让你的 app 的绘画功能 低延迟且富于表现力 在 iOS 14 上 我们在 PencilKit 体验的基础上 添加了一些开箱即用的新功能 (全局配置:Pencil 还是手指) 接下来 我们会谈到我们的一些创新 在有关手指和 Pencil 的选择 即全系统的绘画策略方面 最后 我们会谈到我们在 API 上的一些创新 并率先了解我们所发布的 一些新的 API 它们能够极大地拓展 PencilKit 的功能 在 iOS 13 上 我们介绍了如何使用 PencilKit 仅仅用 PKCanvasView 写几行代码即可 我很高兴看到你是如何使用它的 如果你还没有用过 PencilKit 去看一下我们 2019 年的讲座 你就会了解它使用起来有多方便 (介绍 PencilKit WWDC19) Apple Pencil 具有无穷的潜力 它可以真正解锁高效率和 iPad 因此 我们迫不及待地想要向你展示 我们对 PencilKit 功能所做的一些强化 而最棒的一点是 它们无需被采用 (新特征 零采用) PencilKit 文档变得更加智能化 因为我们将智慧赋予了手写笔记 (Jenny 的花生黄油饼干) 我们提供了更丰富的体验选择 仿照你选择手写文本的方式 你可以轻点两次选择一个词 再次轻点两次选择一行字 甚至通过抓取控点来扩大选区 我们即兴发明了一些强化的手势 比如敏速的轻点和平移 这样你就能自由滑过想要选取的内容 进行不连续的选择
我们也已经介绍了一种简单的方式 用于在你手写的内容间插入空间 你是否曾在写完之后 又想在中间添加一些文字? 无需用超小号字挤进边缘做添加 你只需轻点空白区域 在功能选项栏中点击“插入空间” 使用抓取控点来调整空格大小
这样就能在文字中间轻松添加内容
(休息一个小时) (新的颜色选择器) 我们还采用了新的 UIKit 系统的 标准颜色选择器 其特点是颜色选择方式多样 绘图可选的色彩也更加丰富 有丰富的色彩可供你选择 通过光谱和滑标 能够将自定义的色彩留存备用 或者使用滴管来采集颜色 对 PencilKit 的现有用户来说 你无需在你的 app 中添加任何内容 它们是免费的 若想了解更多 如何轻松采用新功能的信息 请见 UIKit 的相关发言 《自带 iOS 选择器、菜单和操作》 我们也为第三方提供了非常棒的延迟优化 在 iOS 13 上 我们提出了技术建议 以避免延迟所造成的影响 例如 避免任何视觉效果视图或模糊效果 在 iOS 14 上 情况则完全不同 你可以使用不同的视觉效果视图素材 和彩条而无所顾忌 (Catalyst 支持) 此外 我们更添加了 PKCanvasView 作为对 Catalyst 的支持 虽然不再支持工具选择器 但你可以通过 PKCanvasView API 在画布上轻松设置墨水 还要提醒一点的是 智能选择、插入空间 和新的颜色选择器 无需额外的采用步骤 (无需采用) 这就是我们为何要创造 一个全系统的体验 因此我们才能不断提升它的品质 年复一年 并不断增进全系统的用户体验 (手指和 Pencil 绘图的比较) 我们也做了一些区分处理 关于手指和 Pencil 绘图的不同体验 以及如何在全系统内使二者统一起来 手机和 iPad 都支持 PencilKit 用手指或 Apple Pencil 都可以绘图 你要记住的一点是 并不是所有人都有 Pencil (单个手指) 在 iOS 13 上 我们启用了 AllowsFingerDrawing 属性 当你启用了该属性 就能用一个手指绘图 而两个手指就可以滚动 (双手指滚动) 在 iOS 14上 我们采用了新的全局设置 设置方法是在 新的 Apple Pencil 菜单栏的设置中 通过 PreferOnlyPencilDrawing 的 切换开关 该设置适用于所有使用 Pencil 的第三方 无论是应用了 PencilKit 的 app 还是有自己的绘图引擎的 app 都适用
此设置可以通过 UIKit 中的 UIPencilInteraction 进行评估 拥有自己绘图引擎的非 PencilKit 用户 应该遵守该设置 通过查询 UIPencilinteraction .prefersPencilOnlyDrawing 的参数 在手机上 该参数值始终为假 因为手指是你唯一可用的绘图工具
另一方面 PencilKit 的用户无需为此额外花费 因为它就在工具选择器中 它也可切换设置面板中的全局设置 在备忘录中 当 DrawWithFingers 的转换开关开启后 这意味着该设置将应用于全系统中 例如屏幕截图、标记 和其他 PencilKit 用户端 设置中也会显示出新的参数值 (只用 Apple Pencil 绘图)
我们也更新了 PKCanvasView 上的调用 为适应新的全局手指绘图转换开关 我们已经弃用了 allowsFingerDrawing 而是选择设置 画布上的 PKCanvasViewDrawingPolicy
请不要对绘图手势识别器 设置 AllowTouchTypes 而是通过设置画布的绘图策略 来进行 ControlPencilvsFingerTouches
一共有三种不同的绘图策略 首先 PKCanvasViewDrawingPolicy.anyInput 意味着你允许任何形式的输入 包括手指和 Pencil 输入
策略之二 pencilOnly 意思是你只允许使用 Pencil 因此手指会滑动屏幕 或做其他智能选择的手势
第三 也是默认的 取决于工具选择器是否隐藏 若工具选择器是可见的 它就会遵守 UIPencilInteractions PrefersPencilOnlyDrawing 的状态 也就是用户在设置中进行的设置 或在工具选择器中所做的切换
如果工具选择器是隐藏的 那么只能用 Pencil 绘图 每次手指滑动都可以做出智能选择的手势 让我演示给你看 你甚至都不用选择套索工具 当选择了钢笔之后 你可以滑动 并做出智能选择的手势 在你的手写内容上 因此你能轻松在写作和选取内容中
来回切换 (方法)
如果你的 app 只能用 Pencil 你可能不想在绘图中显示手指切换开关 要在用户界面将其关闭 你需要将 PKToolPicker .showsDrawingPolicyControls 设置为假 而 iPad 上始终默认为真 即绘图的工具选择器中 始终显示手指切换开关 如果画布的绘图策略设置为 “仅用 Pencil” 你需要将其设置为假 这样用户就不会感到困惑了 当他们调节开关时 画布上却没有任何改变 (更新后的 API) 我们也更新了 PKToolPicker 的 初始设定方法 用户界面窗口中 不再是独享的工具选择器 现在你能够在工具选择器中初始化个例 这样一来 你就可以拥有 不同状态下的 PKToolPicker 鉴于这种状态 有效的做法是生成多个工具选择器 给你的 app 上不同的画布或窗口 然而 这样做的结果是 你需要始终保留你自己的工具选择实例 用一个眼杆作为提示 (介绍 PencilKit) 什么时候你应该用单实例 而不是创建一个新的 回顾一下我们《介绍 PencilKit》的内容 你可能有其他的用户界面响应服务器 将可见设置为真 以便使工具选择器可见 (响应服务器 A - 相应服务器 B) 你需要将你特有的工具选择器实例 发送给各个响应服务器 (每个画布一个工具选择器) 另一方面 什么情况下你需要不同的工具选择器? 举例来说 我的 app 有两种模式 一个记笔记模式和一个上色模式
我记笔记的画布需要一个默认的绘图策略 而我需要让我的手指和 Pencil 都能在色彩画布上绘图 在这种情况下 每一个画布 都需要各自的工具选择器实例 且具有不同的状态 因为我想在画布上隐藏 上色的绘图策略控制
工具选择器上选择的工具也有不同的状态 我要在笔记画布上选一只黑色钢笔作工具 而我的色彩画布上默认的是紫色记号笔 你 app 上的工具选择器 也许有其他不同的状态 例如不同的用户界面色彩样式 当你绘图或在图上做标记的时候
最后 PencilKit 在 iOS 14 上最大的创新 即使用笔画 让你能够了解 PKDrawing 的内在 通过笔画 你能访问墨水、路径、点等 (审视、改进和打造 PencilKit 绘图) 想获取更多信息 参见《审视、改进 和打造 PencilKit 绘图》的讲座 使用笔画能够解锁更多 PencilKit 有趣的自定义体验 包括批注、动画、识别和机器学习
这就是 PencilKit 的创新 作为 PencilKit 现有用户 你能够获得一些新的增强的特性 而无需采用 包括智能选择、插入空格 和新的颜色选择器 舍弃已被淘汰的 API 而使用新的 API 以便获得最佳的手指和 Pencil 绘图体验
最后 你可以在 PKDrawing 中 对笔画进行自省 通过一些新的 PencilKit API 这会让你的 Pencil 体验更上一层楼 感谢观看 我们期待看到你在 PencilKit 上的作为
-
-
5:21 - PKCanvasView drawingPolicy
var drawingPolicy: PKCanvasViewDrawingPolicy
-
7:06 - PKToolPicker showDrawingPolicyControls
PKToolPicker.showsDrawingPolicyControls
-
8:40 - Toolpicker per canvas
notesCanvas.drawingPolicy = .default notesToolPicker.showsDrawingPolicyControls = true notesToolPicker.selectedTool = PKInkingTool(.pen, color: .black, width: 2) drawingCanvas.drawingPolicy = .anyInput drawingToolPicker.showsDrawingPolicyControls = false drawingToolPicker.selectedTool = PKInkingTool(.marker, color: .purple, width: 20)
-
-
正在查找特定内容?在上方输入一个主题,就能直接跳转到相应的精彩内容。
提交你查询的内容时出现错误。请检查互联网连接,然后再试一次。