chapter[10] · part 2 / 程序员的界面美学
从本章起,画布有了确定的尺寸,也有了确定的主人。做 iOS App,你不是在一张白纸上设计,而是在别人已经立好规矩的世界里做客——Apple 的《人机界面指南》(HIG)就是这套规矩。本章不复述文档(它常读常新,应该直接读原文),而是做一件鉴赏的事:读出 HIG 背后的美学立场,让你知其所以然,从而知道什么时候该打破它。
HIG 的全部内容可以压缩成 Apple 自己给出的三个词:清晰(Clarity)、谦逊(Deference)、深度(Depth)。用本书第一部分翻译:清晰 = 层级与排印的精确(第四、七章);谦逊 = 水晶酒杯——界面为内容服务,自己隐形(第四章开篇那只杯子,Apple 把它写进了平台宪法);深度 = 用光影与层次表达空间关系(第五章)。你已经学过整个 HIG 的哲学,剩下的是平台特定的词汇表。
平台设计的第一原理:用户带着肌肉记忆来到你的 App。从屏幕左缘右滑=返回、底部标签=切换主功能、下拉=刷新、长按=更多操作——这些约定经过十几亿台设备的训练,已经刻进用户的脊髓。遵守约定,你的 App 在用户第一次打开时就"已经会用";违反约定,每一处都要用户重新学习,而他们的解释往往不是"这个设计有创意",而是"这 App 有 bug"。
平台约定就是 UI 的标准库。你不会自己写一个 HashMap——不是写不出,而是标准库的实现经过了千锤百炼,且所有读你代码的人都认识它。UINavigationController、UITabBarController、系统分享面板同理:用系统组件,你免费获得动效、无障碍、动态字号、未来 iOS 版本的自动适配。自绘一个"更酷的"导航,等于 fork 了标准库——从此所有升级成本归你。
HIG 把 App 导航收敛成三种基本范式,几乎所有 iOS App 都是三者的组合:
iOS 的文字系统是第四章理论的官方实现。系统字体 San Francisco 内置了光学尺寸:大字号自动使用对比更优雅的 Display 切割,小字号自动换成字腔更开、字距更松的 Text 切割——印刷时代"标题字与正文字分开铸造"的传统,被做成了操作系统的默认行为。HIG 同时给了一套具名字阶(Large Title 34pt、Title 28pt、Body 17pt、Caption 12pt……),这就是 0.2 节模数字阶的平台版,直接用,不要发明自己的 19pt。
更重要的是动态字号(Dynamic Type):用户可以在系统设置里全局调大字号,你的 App 必须跟随。这是第九章"弹性"哲学在 iOS 上的形态——画布尺寸固定了,但文字尺寸交给了用户。用语义字阶(.body、.headline)而不是写死 17pt 的布局,会在用户调到最大无障碍字号时依然成立;写死的布局会在那一天碎掉。
桌面 Web 的指针是 1px 的精确光标,手机的"指针"是一根约 10mm 宽、还挡住自己目标的拇指。由此推出 iOS 触控设计的两条铁律:
HIG 三关键词的最后一个是深度,它的两件招牌武器都源自第五章:毛玻璃材质(半透明+背景模糊的导航栏、控制中心)本质是空气透视——模糊告诉你"内容从它下面经过",层级关系不靠边框靠光学;跟手动效则是空间的时间维度:右滑返回时页面跟着手指走、松手后按物理惯性滑出,中途反悔可以推回去。动画不是装饰,是在持续回答"我在空间里的哪一层、正往哪里去"。这两样东西用系统组件都是免费的——又一个使用标准库的理由。
读懂规则的最终目的是有资格打破它。游戏全屏接管、相机取景器极简化、品牌力极强的产品自成一派——都可能是正确的打破。判断标准只有一条成本公式:打破约定省下的表达力,是否大于用户重新学习的成本 × 使用频率。低频但关键的流程(首次配置)可以大胆定制;高频的日常操作(返回、切换、输入)几乎永远不值得打破。最差的状态是"无意识的打破"——不知道约定存在而踩穿它。本章之后,你至少把打破变成了一个决定。
现代 iOS 有个根本变化:你的 App 不再只活在它自己那一屏里。它以碎片的形式渗进系统各处——主屏小组件、锁屏小组件、灵动岛(Dynamic Island)的实时活动、通知。这些表面有一个共同的残酷约束:用户只会瞥一眼(glanceable),尺寸极小,而且大多不可交互。它逼你回答一个第七章层级问题的终极版本:如果只能显示一样东西,是哪一样?看同一个外卖订单怎样在四种尺度上被"逐级蒸馏":
WidgetKit、Live Activity 这些 API 在工程上有几条硬约束,恰好都在强迫你做对设计:① 不是迷你 App——小组件基本是只读快照,几乎不能交互,点一下就是跳回 App,所以别想把功能塞进去,只能放"信息";② 必须及时——一个显示过期 ETA 的组件比没有组件更糟(它在撒谎),所以数据新鲜度是第一需求;③ 尺寸是契约——系统给你 small/medium/large 几个固定尺寸,每个都要单独设计、单独决定砍到第几层,而不是把大的缩小(缩小 = 第七章说的"羞怯的差异"在空间上的版本)。一句话:小组件考的不是你会不会画 UI,是你懂不懂自己产品的优先级。
HIG 的美学立场一句话:平台是共有的语言,App 是用这门语言说的话。语法(导航范式、字阶、触达规格)遵守得越严格,你真正想说的那点不同(内容、品牌、独特功能)反而越清晰——这就是"谦逊"的回报,也是第七章"克制"在平台尺度上的重演。
挑一个你每天用的 iOS App(微信、支付宝这类"自成平台"的更有意思),做一次 HIG 审计:① 找出三处严格遵守约定的地方(导航范式、返回手势、系统分享…);② 找出一处明显打破约定的地方,用 10.6 的成本公式评估:这次打破换到了什么?值吗?③ 用一只手操作它的核心流程,记录哪些高频按钮落在"费劲区"。④ 蒸馏练习:为你自己的产品设计一个锁屏小组件——强制只能放一个数字 + 一行字。逼问自己:用户瞥一眼最想知道的那一件事是什么?答不出来,说明你还没想清楚产品的核心价值。把结论写进 swipe file——你正在用 HIG 作者的眼睛看 App。