3 视图样式
4 分钟阅读
原文链接: https://developer.apple.com/documentation/swiftui/view-styles
3 视图样式
为不同类型的视图应用内置的和自定义的外观与行为。
概述
SwiftUI 为某些种类的视图定义了内置样式,并会针对特定的呈现上下文自动选择合适的样式。例如,Label 可能显示为图标、字符串标题,或者两者都显示,具体取决于平台、视图是否出现在工具栏中等等。

你可以用某个样式视图修饰符覆盖自动选择的样式。这些修饰符通常会穿过容器视图传播,因此你可以用样式修饰符包裹整个视图层级,从而影响该层级内所有给定类型的视图。
任何定义了 makeBody(configuration:) 方法的样式协议(例如 ToggleStyle)也让你可以定义自定义样式。创建一个遵循相应样式协议的类型并实现它的 makeBody(configuration:) 方法,然后用样式视图修饰符像使用内置样式那样应用这个新样式。
用 Liquid Glass 设置视图样式
- 把 Liquid Glass 应用到自定义视图 —— 用 Liquid Glass 效果配置、组合并形变视图。
- Landmarks:用 Liquid Glass 构建应用 —— 用系统提供的和自定义的 Liquid Glass 增强你的应用体验。
- glassEffect(_:in:) —— 对视图应用 Liquid Glass 效果。
- glassEffectID(_:in:) —— 把一个标识值关联到该视图内定义的 Liquid Glass 效果。
- glassEffectTransition(_:) —— 把一个玻璃效果过渡关联到该视图内定义的任何玻璃效果。
- glassEffectUnion(id:namespace:) —— 把该视图内定义的任何 Liquid Glass 效果与所提供的标识符组成一个联合。
- interactive(_:) —— 返回一份配置为可交互的结构体副本。
- GlassEffectContainer —— 把多个 Liquid Glass 形状合并成单个形状、并能在各个形状之间形变的视图。
- GlassEffectTransition —— 描述在视图层级中添加或移除玻璃效果时要应用的改动的结构体。
- GlassButtonStyle —— 根据按钮上下文应用玻璃边框外观的按钮样式。
- GlassProminentButtonStyle —— 根据按钮上下文应用醒目玻璃边框外观的按钮样式。
- DefaultGlassEffectShape —— 玻璃效果应用的默认形状,即胶囊形。
设置按钮样式
- buttonStyle(_:) —— 把该视图内按钮的样式设置为一种带自定义外观和标准交互行为的按钮样式。
- ButtonStyle —— 为视图层级中所有按钮应用标准交互行为和自定义外观的类型。
- ButtonStyleConfiguration —— 按钮的属性。
- PrimitiveButtonStyle —— 为视图层级中所有按钮应用自定义交互行为和自定义外观的类型。
- PrimitiveButtonStyleConfiguration —— 按钮的属性。
- signInWithAppleButtonStyle(_:) —— 设置用于显示该控件的样式(参见
SignInWithAppleButton.Style)。 - buttonSizing(_:) —— 视图层级中按钮偏好的尺寸调整行为。
- ButtonSizing ——
Button以及其他类按钮控件的尺寸调整行为。
设置选择器样式
- pickerStyle(_:) —— 设置该视图内选择器的样式。
- PickerStyle —— 指定视图层级中所有选择器外观与交互的类型。
- datePickerStyle(_:) —— 设置该视图内日期选择器的样式。
- DatePickerStyle —— 指定视图层级中所有日期选择器外观与交互的类型。
设置菜单样式
- menuStyle(_:) —— 设置该视图内菜单的样式。
- MenuStyle —— 为视图层级中所有菜单应用标准交互行为和自定义外观的类型。
- MenuStyleConfiguration —— 菜单的配置。
设置开关样式
- toggleStyle(_:) —— 设置视图层级中开关的样式。
- ToggleStyle —— 开关的外观与行为。
- ToggleStyleConfiguration —— 开关实例的属性。
设置指示器样式
- gaugeStyle(_:) —— 设置该视图内量表的样式。
- GaugeStyle —— 定义视图层级中所有量表实例的实现。
- GaugeStyleConfiguration —— 量表实例的属性。
- progressViewStyle(_:) —— 设置该视图中进度视图的样式。
- ProgressViewStyle —— 为视图层级中所有进度视图应用标准交互行为的类型。
- ProgressViewStyleConfiguration —— 进度视图实例的属性。
设置显示文本的视图的样式
- labelStyle(_:) —— 设置该视图内标签的样式。
- LabelStyle —— 为视图内所有标签应用自定义外观的类型。
- LabelStyleConfiguration —— 标签的属性。
- textFieldStyle(_:) —— 设置该视图内文本输入框的样式。
- TextFieldStyle —— 对文本输入框外观与交互的规范说明。
- textEditorStyle(_:) —— 设置该视图内文本编辑器的样式。
- TextEditorStyle —— 对文本编辑器外观与交互的规范说明。
- TextEditorStyleConfiguration —— 文本编辑器的属性。
设置集合视图样式
- listStyle(_:) —— 设置该视图内列表的样式。
- ListStyle —— 描述列表行为与外观的协议。
- tableStyle(_:) —— 设置该视图内表格的样式。
- TableStyle —— 为视图内所有表格应用自定义外观的类型。
- TableStyleConfiguration —— 表格的属性。
- disclosureGroupStyle(_:) —— 设置该视图内折叠组的样式。
- DisclosureGroupStyle —— 指定视图层级中折叠组外观与交互的类型。
设置导航视图样式
- navigationSplitViewStyle(_:) —— 设置该视图内导航分栏视图的样式。
- NavigationSplitViewStyle —— 指定视图层级中导航分栏视图外观与交互的类型。
- tabViewStyle(_:) —— 设置当前环境中标签页视图的样式。
- TabViewStyle —— 对标签页视图外观与交互的规范说明。
设置分组样式
- controlGroupStyle(_:) —— 设置该视图内控件组的样式。
- ControlGroupStyle —— 定义视图层级中所有控件组的实现。
- ControlGroupStyleConfiguration —— 控件组的属性。
- formStyle(_:) —— 设置视图层级中表单的样式。
- FormStyle —— 表单的外观与行为。
- FormStyleConfiguration —— 表单实例的属性。
- groupBoxStyle(_:) —— 设置该视图内分组框的样式。
- GroupBoxStyle —— 指定视图层级中所有分组框外观与交互的类型。
- GroupBoxStyleConfiguration —— 分组框实例的属性。
- indexViewStyle(_:) —— 设置当前环境中索引视图的样式。
- IndexViewStyle —— 定义视图层级中所有
IndexView实例的实现。 - labeledContentStyle(_:) —— 设置带标签内容的样式。
- LabeledContentStyle —— 带标签内容实例的外观与行为。
- LabeledContentStyleConfiguration —— 带标签内容实例的属性。
从窗口内的视图设置窗口样式
- presentedWindowStyle(_:) —— 设置通过与该视图交互所创建窗口的样式。
- presentedWindowToolbarStyle(_:) —— 设置通过与该视图交互所创建窗口中工具栏的样式。
在 visionOS 中为视图添加玻璃背景
- glassBackgroundEffect(displayMode:) —— 用自动的玻璃背景效果和相对容器的圆角矩形填充视图背景。
- glassBackgroundEffect(in:displayMode:) —— 用自动的玻璃背景效果和你指定的形状填充视图背景。
- GlassBackgroundDisplayMode —— 玻璃背景的显示模式。
- GlassBackgroundEffect —— 对玻璃背景外观的规范说明。
- AutomaticGlassBackgroundEffect —— 自动玻璃背景效果。
- GlassBackgroundEffectConfiguration —— 用于构建自定义效果的配置。
- FeatheredGlassBackgroundEffect —— 羽化玻璃背景效果。
- PlateGlassBackgroundEffect —— 平板玻璃背景效果。