杂乱功用(Complication)会在表盘上及时的显现 App 的相关信息,用户每次抬起手腕时都能够检查该信息。在规划 watchOS App 时,咱们或许会发现用户与 App 的互动时刻只有几秒钟。与 iOS App 不同, iOS App 希望用户会在更长的一段时刻内与 App 互动。因此,咱们应该一直努力为咱们的 App 增加杂乱功用。
从 watchOS 9 开端,体系将杂乱功用组织到几个系列中(例如圆形和内联),并界说了一些可用于显现杂乱功用数据的推荐布局。表盘能够在每个杂乱功用槽中指定它支撑的系列。在早期版别的 watchOS 中工作的杂乱功用,能够运用旧版模板。这也是 Xcode14.0 和之前版别的差异。
开发者以时刻线(Timeline)的形式供给杂乱功用的数据,体系运用该时刻线来确认在不同时刻显现的数据。咱们每天能够更新时刻线的次数有限,体系会为每个运用程序存储有限数量的 Timeline Entries。有关开发人员攻略,能够参阅使您的杂乱功用坚持最新。
为什么会呈现杂乱功用?
如前所述,与 watchOS App 的交互通常需求几秒。例如,用户在运用地图运用程序时,或许只想知道下一个转弯有多远以及希望的方向。
即便咱们不认为咱们的 App 具有任何能够显现在表盘上的数据,供给杂乱功用也能够让用户经过简略的触摸屏幕来发动咱们的 App。除此之外,用户在其表盘上包含咱们的 App 的杂乱功用时,watchOS 供给了一些优点:
-
watchOS 将咱们的 App 保存在内存中,并为其供给额定的更新时刻,使运用程序简直能够立即发动。
-
咱们的 App 的杂乱功用每天最多能够收到 50 次推送,其间包含更新的信息。
-
咱们的 App 能够执行额定的后台刷新使命。
-
咱们的 App 的杂乱功用能够在手机上的 Apple Watch Face Gallery 中显现。
iOS14.0 经过 Widget 供给了相似的概念。但与 Apple Watch 不同的是,要检查小部件上的数据,用户需求将手机从口袋或钱包中取出,解锁屏幕,或许还需求滑动到另一个屏幕,然后才干检查你的数据。 相似 iOS16.0 的锁屏小组件。
最佳实践
-
一望而知地确认用户想要检查的基本动态内容。尽管用户能够运用杂乱功用来快速发动 App,但他们更欣赏的杂乱功用一直是最新信息的显现。不显现有意义数据的静态杂乱功用或许不太或许或适宜保留在表盘的显眼位置。
-
尽或许支撑一切杂乱功用系列(Complication Families)。支撑更多系列意味着 App 的杂乱功用能够在更多的表盘上运用。假如 App 无法显现特定杂乱功用系列的有用信息,能够供给代表 App 的图画,该图画仍可让用户从表盘发动 App。
-
考虑为每个系列制作多种杂乱功用。支撑多种杂乱功用可协助咱们运用可同享的表盘,并让用户装备他们喜欢的表盘。例如,一款协助人们进行铁人三项训练的 App 能够供给三种杂乱功用——用于比赛的每个部分——每个都链接到 App 中的特定部分区域。该 App 还能够供给一个可同享的表盘,该表盘经过预先装备,包含游泳、骑自行车和跑步的杂乱功用,并运用其自界说图画和色彩。当用户挑选这个表盘时,他们不需求做任何装备就能够开端运用它。有关相关指导,请参阅表盘;有关开发人员攻略,请参阅为您的运用声明杂乱功用。
-
为 App 支撑的每个杂乱功用界说不同的DeepLink。每个杂乱功用将 App 翻开到最相关的内容时,它会很好地工作。假如咱们的 App 支撑的一切杂乱功用都在咱们的 App 中翻开相同的内容,那么它们似乎就没那么有用了。
-
紧记隐私。借助 Always-On Retina 显现屏,表盘上的信息或许对佩带者以外的人可见。确保您协助人们避免别人看到潜在的灵敏信息。有关相关内容的指导,请参阅 Always-On。
-
细心考虑何时更新数据。每个时刻线 entry 都有一个时刻值,指定在表盘上显现数据的时刻;不同的数据集或许需求不同的时刻值。例如,会议 App 或许会在会议开端前一小时显现有关行将举办的会议的信息,但天气 App 会在这特定时刻显现天气预报信息。请挑选能够提高 App 供给的数据有用性的时刻。
旧版杂乱功用模版(支撑早于 watchOS 9 版别)
在每个系列中,Apple 供给了多个模板来描绘杂乱功用的布局。大多数模板由简略的文本和图画组成。
Circular small
Circular Small 模板在表盘的旮旯供给了一个小圆圈,能够显现几个字符的文本、图画或圆形进展环。它包含以下模板:
图画模版
- CLKComplicationTemplateCircularSmallRingImage:带有进展环的单个图画。
- CLKComplicationTemplateCircularSmallSimpleImage:没有文字的单个图画。
- CLKComplicationTemplateCircularSmallStackImage:图片下方有一行文字。
文本模版
- CLKComplicationTemplateCircularSmallRingText:进展环内的短文本字符串。
- CLKComplicationTemplateCircularSmallSimpleText:没有图画的短文本字符串。
- CLKComplicationTemplateCircularSmallStackText:两个短文本字符串。
Modular small
咱们能够经过Modular small 模板向较小的空间供给内容。例如模块化表盘上,最下面一行的杂乱功用。
图画模板
- CLKComplicationTemplateModularSmallRingImage:带有进展环的单个图画。
- CLKComplicationTemplateModularSmallSimpleImage:单个图画。
- CLKComplicationTemplateModularSmallStackImage:图片下方有一行文字。
文本模板
- CLKComplicationTemplateModularSmallRingText :进展环内的短文本字符串。
- CLKComplicationTemplateModularSmallSimpleText:没有图画的短文本字符串。
Modular large
Modular large 显现更大的文本和图画,最多供给三行内容。
Body 模版
- CLKComplicationTemplateModularLargeStandardBody:显现一个标题行和两行文本。
- CLKComplicationTemplateModularLargeStandardBody:显现一个标题行和两行文本。
Columns 和 Table 模板
- CLKComplicationTemplateModularLargeColumns:显现 3×2 文本网格,或 3×3 网格(其间第一列是小图画)。
- CLKComplicationTemplateModularLargeTable:显现带有可选小图画的标题行,然后是 2×2 网格的文本。
Extra large
Extra large 模板显现更大的文本和图画。
图画模板
- CLKComplicationTemplateExtraLargeRingImage:带有进展环的单个图画。
- CLKComplicationTemplateExtraLargeSimpleImage:没有文本的单个图画。
- CLKComplicationTemplateExtraLargeStackImage:图片下方有一行文字。
文本模板
- CLKComplicationTemplateExtraLargeColumnsText:一个 2×2 网格的文本。
- CLKComplicationTemplateExtraLargeRingText:进展环内的短文本字符串。
- CLKComplicationTemplateExtraLargeSimpleText:没有图画的短文本字符串。
- CLKComplicationTemplateExtraLargeStackText:两个短文本字符串。
Utilitarian
实用(Utilitarian)模板供给了多种方式在很多表盘上显现内容。
Utilitarian small
- CLKComplicationTemplateUtilitarianSmallFlat:在单行上显现图画,后跟短文本。
- CLKComplicationTemplateUtilitarianSmallRingImage:在圆形进展环内显现一个小图画。
- CLKComplicationTemplateUtilitarianSmallRingText:在圆形进展环内显现一个短文本字符串。
CLKComplicationTemplateUtilitarianSmallSquare:显现一个小方形图画。
Utilitarian large
CLKComplicationTemplateUtilitarianLargeFlat:在单行上显现一个图画,后跟一个长文本字符串。
Graphic
Graphic 模板在几个不同的表盘上显现视觉丰富的内容。与其他模板不同, Graphic 模板允许咱们运用 SwiftUI 视图来代替刚性布局。图形系列中有近 30 种不同的模板,这儿就不一一列举了。
图形模板分为五个系列:
- CLKComplicationFamily.graphicCorner:填充 Infograph 表盘旮旯的曲折区域。
- CLKComplicationFamily.graphicCircular:Infograph 和 Infograph Modular 表盘上的圆形区域。
- CLKComplicationFamily.graphicBezel:Infograph 表盘边框上带有可选曲线文本的圆形区域。
- CLKComplicationFamily.graphicRectangular:Infograph Modular 表盘中心的大矩形区域。
- CLKComplicationFamily.graphicExtraLarge:X-Large 表盘上的一个大方形区域。
杂乱功用模版( watchOS 9 及后续版别)
watchOS 9 及后续版别对 杂乱功用模版 进行了重新划分。
Circular
圆形布局能够在 Infograph 和 Infograph Modular 表盘的圆形区域中包含文本、外表和全彩图画。圆形系列还界说了用于在 X-Large 表盘上显现内容的超大布局。
咱们还能够增加文本以随同常规尺度的圆形图画,运用沿着某些表盘的边框曲折文本的规划,例如 Infograph。在截断之前,文本能够填满近 180 度的边框。
体系将圆形遮罩运用于每个图画。
假如咱们想规划一个超大尺度的重要信息处理,能够呈现在 X-Large 表盘上——例如,联系人杂乱功用,其间有一张联系人相片——运用圆形系列布局的超大版别。以下布局可让咱们在占满 X-Large 表盘大部分区域的大圆形区域中显现全五颜六色图画、文本和外表。一些文本字段能够支撑多色文本。
Corner
旮旯布局让咱们能够在表盘的旮旯显现全五颜六色图画、文本和外表,如信息图。一些模板还支撑多色文本。
体系将圆形遮罩运用于每个图画。
Inline
内联布局包含实用的小型和大型布局。实用的小布局旨在占据表盘旮旯的矩形区域,例如计时码表和简略表盘。内容能够包含图画、界面图标或圆形图。
实用的大布局主要是基于文本的,但也支撑放置在文本前导侧的界面图标。此布局横跨表盘底部,如实用程序或运动表盘。
Rectangular
矩形布局能够在大矩形区域中显现全五颜六色图画、文本、外表和可选标题。一些文本字段能够支撑多色文本。
大矩形区域十分适合显现随时刻变化的值或进程的详细信息,因为它为信息丰富的图表、图形和图表供给了空间。例如,心率杂乱功用显现 24 小时内的心率值图表。图表主要内容运用高对比度的白色和红色,图形线条和标签运用对比度较低的灰色,使数据一望而知。
杂乱功用对色彩问题
尽管咱们能够在许多杂乱功用模板中包含全彩图画,但咱们需求注意不要让咱们的杂乱功用依赖于这些可见的色彩。
原因之一是有些用户是色盲,咱们需求照顾这些用户的运用体验。其次从朴实的技术视点来看,用户能够禁用色彩!支撑图形杂乱功用的表盘能够上色,显现杂乱功用的低色版别。假如表盘已上色,则以下更改适用于模板:
-
曾经运用色彩突变的外表现在根据选定的色彩显现纯色。
-
文本色彩基于用户的表盘色彩,而多色文本供给程序显现单一色彩。
-
尽管咱们能够为图画供给自界说上色版别,但默认情况下图画是去饱和的。
相关链接
规划文档
- Human interface guideline: Complications
开发人员文档
-
运用 SwiftUI 构建杂乱功用
-
为运用增加杂乱功用
-
让杂乱功用坚持最新
-
显现有色杂乱功用
-
为杂乱功用增加占位符
视频
-
Go further with Complications in WidgetKit
-
Complications and widgets: Reloaded
-
Build complications in SwiftUI
后续,咱们将以 watchOS 9 前后为边界,了解 ClockKit 和 WidgetKit 下的杂乱功用的差异。