3 自定义布局
1分钟内可阅读完
原文链接: https://developer.apple.com/documentation/swiftui/custom-layout
3 自定义布局
按自定义方式排列视图,并在不同布局类型之间创建动画过渡。
概述
你可以用 SwiftUI 提供的内置布局容器和布局视图修饰符创建复杂的视图布局。不过,如果你需要某种内置布局工具无法实现的行为,可以用 Layout 协议创建自定义布局容器类型。你定义的容器会先询问所有子视图的尺寸,然后指明把这些子视图放在自身边界内的什么位置。

你还可以在遵循 Layout 协议的各种布局类型(包括内置布局和自定义布局)之间创建动画过渡。
关于设计指导,请参阅 Human Interface Guidelines 中的 布局。
创建自定义布局容器
- 用 SwiftUI 组合自定义布局 — 使用 SwiftUI 提供的布局工具来排列应用界面中的视图。
- Layout — 一种定义一组视图的几何信息的类型。
- LayoutSubview — 表示布局中某个子视图的代理。
- LayoutSubviews — 一组表示布局视图各个子视图的代理值。
配置自定义布局
- LayoutProperties — 布局容器特有的布局属性。
- ProposedViewSize — 对视图尺寸的提议。
- ViewSpacing — 视图的几何间距偏好集合。
在自定义布局中把值与视图关联
- layoutValue(key:value:) — 把一个值与自定义布局属性关联起来。
- LayoutValueKey — 用于访问布局容器子视图的布局值的键。
在布局类型之间过渡
- AnyLayout — 类型被抹除的布局协议实例。
- HStackLayout — 一种可用于条件布局的水平容器。
- VStackLayout — 一种可用于条件布局的垂直容器。
- ZStackLayout — 一种可用于条件布局的叠加容器。
- GridLayout — 一种可用于条件布局的网格。