用途
该技能面向 SwiftUI 应用开发,用于实现现代工具栏(Toolbar)相关需求。当用户希望添加或定制工具栏、使用可自定义(用户可配置)工具栏、在工具栏中放置搜索框并指定位置、为工具栏项添加过渡或动画、使用特定放置位置(如 bottomBar、largeSubtitle 等)、处理平台特有工具栏行为(iOS 与 macOS 差异),或重新定位系统工具栏项(搜索、侧边栏)时,该技能会被激活。
主要能力
文档通过决策树划分工具栏功能方向:用户可定制的工具栏(增删、重排)使用 .toolbar(id:) 配合 ToolbarItem(id:);搜索框集成可选择最小化为按钮(.searchToolbarBehavior(.minimize))或重新定位(DefaultToolbarItem(kind: .search, placement:));工具栏过渡与动画支持从工具栏项出发的缩放过渡(.matchedTransitionSource(id:in:))以及隐藏玻璃背景(.sharedBackgroundVisibility(.hidden));自定义副标题区域内容使用 ToolbarItem(placement: .largeSubtitle);系统工具栏项可通过自定义放置位置重新定位。
文档还给出了 API 可用性对照,包括 .toolbar { }、ToolbarItem(placement:)、.toolbar(id:)、ToolbarItem(id:)、ToolbarSpacer、.searchable()、.searchToolbarBehavior(.minimize)、DefaultToolbarItem(kind:placement:)、ToolbarItem(placement: .largeSubtitle)、.matchedTransitionSource(id:in:)、.sharedBackgroundVisibility() 所对应的最低系统版本与备注。
使用方式
文档以代码示例说明各类用法:可自定义工具栏通过 .toolbar(id: "main-toolbar") 与带 id 的 ToolbarItem 组合实现,并可用 ToolbarSpacer(.fixed) 或 ToolbarSpacer(.flexible) 进行分组或分隔;搜索最小化在 .searchable(text:) 基础上追加 .searchToolbarBehavior(.minimize);搜索重定位使用 DefaultToolbarItem(kind: .search, placement: .bottomBar);大副标题使用 ToolbarItem(placement: .largeSubtitle);过渡效果使用 @Namespace 声明命名空间,将 .matchedTransitionSource(id:in:) 应用于 ToolbarItem,并在弹出视图上使用 .navigationTransition(.zoom(sourceID:in:))。
文档还列出常见错误及修复方式,包括:可自定义工具栏中 ToolbarItem 缺少 id、未搭配 .searchable() 就使用 .searchToolbarBehavior(.minimize)、把 .matchedTransitionSource 加在 Button 而非 ToolbarItem 上、同时使用 .largeSubtitle 与 .navigationSubtitle() 导致后者被隐藏、DefaultToolbarItem 忘记指定 placement。
适用场景
适用于 iOS、iPadOS 与 macOS 的 SwiftUI 应用开发。文档建议:iOS 上底部栏适合 iPhone,使用 .searchToolbarBehavior(.minimize) 节省空间;iPadOS 上可自定义工具栏在生产效率应用中价值较高,可考虑键盘快捷键;macOS 用户期望工具栏可定制,可用间隔符进行逻辑分组。文档还提供检查清单,涵盖可自定义工具栏、搜索集成、过渡、平台四方面,例如测试自定义面板(iPadOS 长按、macOS 右键)。
限制
资料未提供关于收费、价格、平台支持范围之外的具体效果或使用步骤的更多信息。