WWDC Quick Look 💓 By SwiftGGTeam
Explore the SF Symbols 3 app

Explore the SF Symbols 3 app

观看原视频

Highlight

SF Symbols 3 app 增加集合、兼容性检查、本地化预览、新渲染模式预览、自定义符号标注和 Copy Image,开发者可以在设计到开发的完整流程中管理系统符号和自定义符号。

核心内容

做一个纸牌游戏,界面需要很多小图标。邀请玩家要有“人加号”。四种花色要有黑桃、红心、梅花和方块。规则入口要有书本。牌堆操作还需要堆叠图标。

以前,这件事很容易散开。设计师在图库里找图标,工程师在代码里猜符号名称。符号是否支持旧系统、是否会随语言方向改变、是否能在深色模式下保持颜色,都要分开检查。自定义图标还会落到普通 SVG 或 PNG 资源里,失去 SF Symbols 的对齐、字重和渲染能力。

SF Symbols 3 app 把这些步骤收进一个工具。开发者可以先建 collection(集合),把项目用到的符号放在一起。选中符号后,信息检查器显示名称、废弃名称、SF Symbols 版本和本地化表现。渲染检查器可以预览 Monochrome(单色)、Multicolor(多色)、Hierarchical(分层)和 Palette(调色板)模式。

这直接解决了开发流程里的断点。设计阶段可以用 Copy Symbol 或 Copy Image 把符号放进设计稿。开发阶段可以复制符号名称,或者导出完整自定义符号给 Xcode。自定义符号还能在 app 里标注图层,接入 SF Symbols 3 的新渲染模式。

从项目场景开始收集符号

纸牌游戏的例子很具体。先创建 Card Game 集合,再从 Human 分类拖入添加玩家符号。接着搜索 suit 找四种花色,搜索 stack 找牌堆,搜索 book 找规则入口。

集合的作用是把“我正在用的符号”从 3000 多个系统符号里分出来。后续检查兼容性、预览颜色、复制到设计稿,都从这个短列表开始。

检查兼容性和本地化

同一个视觉符号可能有新名称和废弃名称。演讲里的添加玩家符号,person.fill.badge.plus 从 SF Symbols 2.0 开始可用,对应 iOS 14。废弃名称 person.badge.plus.fill 从 SF Symbols 1.0 开始可用,对应 iOS 13。

如果应用还要支持 iOS 13,旧名称能解决兼容性问题。等最低系统版本提高后,再切换到新名称。这个判断来自信息检查器,不需要开发者去不同系统上逐个试。

本地化也在这里检查。规则书符号会根据用户语言显示对应文字,还会根据从左到右或从右到左的语言方向调整书本打开方向。默认使用无后缀的符号名,让系统按用户语言选择表现。

预览 SF Symbols 3 的四种渲染模式

渲染检查器把符号颜色预览放在工具内。单色模式使用一个颜色。多色模式使用符号内置颜色,纸牌花色会自动让红心和方块变红,黑桃和梅花变黑,还会适配深色模式。

SF Symbols 3 新增了分层和调色板。分层模式只选一个颜色,系统用不同透明度表现图层深浅。调色板模式允许指定两种或三种颜色,对符号不同部分做更精细的控制。

自定义符号进入同一套流程

系统库里没有“红心皇后”符号。演讲从 crown.fill 开始,使用 File > Duplicate as Custom Symbol 复制为自定义符号,再改名为 queen.heart.fill

形状修改在外部矢量工具完成。SF Symbols app 导出 template SVG,设计师用 Sketch 之类的工具修改路径,然后把编辑后的模板拖回自定义符号。符号会立即更新。

自定义符号也能标注新渲染模式。多色模式下,把红心路径拖到新图层并设为红色,把皇冠下半部分设为黄色。分层模式下,把红心放在 primary layer,把皇冠其他部分放在 secondary layer。

详细内容

用集合整理项目符号

00:54)SF Symbols 3 app 可以用左上角加号创建集合。集合用于保存当前项目选中的符号。

Collection: Card Game

person.badge.plus.fill
suit.spade.fill
suit.heart.fill
suit.club.fill
suit.diamond.fill
book

关键点:

  • Collection: Card Game 表示为纸牌游戏建立一个项目集合。
  • person.badge.plus.fill 是演讲中用于兼容 iOS 13 的添加玩家符号旧名称。
  • suit.spade.fillsuit.heart.fillsuit.club.fillsuit.diamond.fill 对应四种牌面花色,来自搜索词 suit
  • book 用于规则入口,演讲展示它会随本地化调整视觉表现。

选择符号名称时先看系统版本

02:37)信息检查器显示符号名称和可用版本。演讲里的添加玩家符号有两个可用名称。

let modernName = "person.fill.badge.plus"     // SF Symbols 2.0, iOS 14
let legacyName = "person.badge.plus.fill"     // SF Symbols 1.0, iOS 13
let targetMinimumOS = "iOS 13"
let selectedName = legacyName

关键点:

  • modernName 来自信息检查器,适合最低支持 iOS 14 及更新系统的应用。
  • legacyName 是带警告标记的废弃名称,但它可以覆盖 iOS 13。
  • targetMinimumOS 表示演讲里的约束:家人仍有人使用旧系统。
  • selectedName 选择旧名称,是为了让同一个视觉符号在 iOS 13 上可用。
  • 废弃名称只适合兼容旧系统;最低版本提高后,应迁移到新名称。

本地化符号优先交给系统选择

03:43)信息检查器会显示符号在不同本地化下的外观。书本符号会换成用户本地文字,还会适配文字方向。

let automaticLocalizedSymbolName = "book"
let arabicSpecificSymbolName = "book.ar"
let chineseSpecificSymbolName = "book.zh"
let nameUsedInMostApps = automaticLocalizedSymbolName

关键点:

  • automaticLocalizedSymbolName 没有本地化后缀,系统会按用户首选语言选择表现。
  • arabicSpecificSymbolName 展示演讲提到的 .ar 后缀,可在 Xcode 中指定特定本地化。
  • chineseSpecificSymbolName 展示演讲提到的 .zh 后缀。
  • nameUsedInMostApps 保持无后缀名称,避免开发者手动判断用户语言和书本方向。

在 app 里预览渲染模式

04:28)渲染检查器可以切换四种模式,并预览颜色、背景和图层效果。

Monochrome: one color, such as system purple
Multicolor: intrinsic colors, such as red hearts and diamonds
Hierarchical: one color with opacity-based layers
Palette: two or three specified colors

关键点:

  • Monochrome 使用单一颜色,适合普通工具栏和导航图标。
  • Multicolor 使用符号内置颜色,纸牌花色会自动区分红黑。
  • Hierarchical 是 SF Symbols 3 新模式,用一个颜色和透明度表现层次。
  • Palette 是 SF Symbols 3 新模式,允许指定两到三种颜色。
  • 背景选择器可以测试深色模式,演讲中黑桃和梅花会随深色背景调整颜色。

从系统符号复制自定义符号

06:20)没有现成图标时,可以从系统符号复制一个自定义符号。演讲从 crown.fill 复制出 queen.heart.fill

Select: crown.fill
Menu: File > Duplicate as Custom Symbol
Rename: queen.heart.fill
Export: template SVG
Edit: vector editor
Import: drag edited template back onto the custom symbol

关键点:

  • Select: crown.fill 选择一个接近目标造型的系统符号作为起点。
  • File > Duplicate as Custom Symbol 在 SF Symbols app 内创建自定义符号。
  • Rename: queen.heart.fill 给自定义符号取业务相关名称。
  • Export: template SVG 导出可编辑模板。
  • Import 使用拖放把修改后的模板放回自定义符号,app 会立即更新。

给自定义符号标注颜色图层

07:12)自定义符号选中后,侧边栏会出现标注控件。Gallery view 提供更大的编辑视图。

Multicolor annotation:
  heart layer -> red
  lower crown layer -> yellow

Hierarchical annotation:
  heart layer -> primary
  lower crown layer -> secondary

关键点:

  • heart layer -> red 来自演讲的多色标注,红心部分单独成层并设为红色。
  • lower crown layer -> yellow 把皇冠下半部分放到黄色层。
  • heart layer -> primary 在分层模式下把红心设为主层。
  • lower crown layer -> secondary 把皇冠其他部分设为次层。
  • 同一个自定义符号加入集合后,可以和系统符号一起预览所有新渲染模式。

设计稿使用 Copy Symbol 和 Copy Image

09:04)系统符号、单色渲染、和文字放在一起时,推荐用 Copy Symbol。它会把符号作为文本粘贴到设计工具。

System symbol + text + monochrome:
  Edit > Copy Symbol
  Command-C
  Paste as text

Custom symbol or color rendering:
  Edit > Copy Image
  Option-Command-C
  Copy Image As: PNG or SVG, point size, pixel scale

关键点:

  • Edit > Copy Symbol 适合系统符号和单色模式。
  • Paste as text 让符号使用 SF fonts,和旁边文字自动基线对齐、字重匹配。
  • Edit > Copy Image 适合自定义符号,以及 Multicolor、Hierarchical、Palette 渲染模式。
  • Copy Image As 可以选择 PNG 或 SVG,还能指定 point size 和 pixel scale。
  • Copy Image 面向设计稿;如果要放进 Xcode 项目,应使用 Export Symbol,保留完整自定义符号能力。

核心启发

  1. 做什么:给应用建立“项目符号清单”。

    • 为什么值得做:集合可以把实际使用的符号从 3000 多个系统符号里分离出来,设计和开发都围绕同一份列表工作。
    • 怎么开始:打开 SF Symbols 3 app,用加号创建项目集合,把搜索到的系统符号拖进去,再逐个检查名称、可用版本和本地化表现。
  2. 做什么:为仍支持旧系统的 app 建立符号名称迁移表。

    • 为什么值得做:信息检查器会显示新名称和废弃名称的可用版本,能避免低版本系统找不到符号。
    • 怎么开始:选中关键符号,记录当前名称和废弃名称。例如把 person.fill.badge.plusperson.badge.plus.fill 放进迁移表,等最低系统版本提高后替换。
  3. 做什么:给国际化界面做符号预览检查。

    • 为什么值得做:部分符号会随语言文字和书写方向改变。提前预览可以发现规则书、箭头、文本相关图标的方向问题。
    • 怎么开始:在信息检查器查看本地化表现。代码里优先使用无后缀符号名,例如 book,让系统按用户语言选择合适版本。
  4. 做什么:为品牌功能制作一个自定义 SF Symbol。

    • 为什么值得做:自定义符号可以接入 SF Symbols 的字重、尺寸和新渲染模式,比普通图片资源更适合系统界面。
    • 怎么开始:选择接近目标的系统符号,执行 File > Duplicate as Custom Symbol,导出 template SVG,在矢量工具中修改,再拖回 SF Symbols app。
  5. 做什么:把彩色图标先放进设计稿验证。

    • 为什么值得做:Copy Image 可以把自定义符号或彩色渲染符号以 PNG/SVG 放进设计稿,团队能在进入 Xcode 前确认视觉效果。
    • 怎么开始:在渲染检查器设置 Multicolor、Hierarchical 或 Palette,执行 Edit > Copy Image,必要时用 Copy Image As 指定尺寸和格式。

关联 Session

评论

GitHub Issues · utterances