SuperAPI AI 工具集

axiom-swiftui-layout-ref

前端与建站

查看项目

更新于 10-16 00:23

技能介绍

用途:这是一份 SwiftUI 自适应布局 API 的完整参考,供开发者查阅各布局工具的行为、用法与限制;决策指引与反模式另见 axiom-swiftui-layout 技能。

主要能力: ViewThatFits(iOS 16+)按顺序评估子视图并显示第一个能放下的视图,可用 in 参数限定水平或垂直方向;局限是不暴露被选中的变体、无法在变体间做动画、需测量全部变体。 AnyLayout(iOS 16+)是类型擦除的布局容器,可在 HStackLayout、VStackLayout、ZStackLayout、GridLayout 间切换并配合 .animation 做动画,相比条件视图能保留视图身份。 Layout 协议(iOS 16+)用于自定义布局容器,需实现 sizeThatFits 与 placeSubviews,可选 makeCache、LayoutValueKey。 onGeometryChange(iOS 16+ 回移)在布局完成后读取几何值,不产生布局副作用,可用于读取尺寸、坐标空间中的 frame、宽高比;与 GeometryReader 的对比:前者无布局影响、布局后评估、适合副作用,后者贪婪填充、布局期间评估、适合布局计算。 GeometryReader(iOS 13+)提供布局阶段的几何信息,需约束使用,否则会占满空间,不当使用可能引起布局循环。 安全区内边距:.padding() 从视图边缘加固定间距,.safeAreaPadding()(iOS 17+)在安全区之外再加间距;全宽或贴边内容应用后者,容器内部间距用前者。 尺寸类与 Dynamic Type:通过 @Environment 读取 horizontalSizeClass、verticalSizeClass、dynamicTypeSize,并可用 @ScaledMetric 做缩放;资料列出各平台尺寸类取值。 iOS 26 窗口 API:包含窗口调整锚点与 iPad 菜单栏命令(CommandMenu、keyboardShortcut)。

使用方式:按上述 API 在 SwiftUI 视图中直接调用;资料给出命令与代码片段均需保持原样,不在本说明中重复长代码。

适用场景:构建 iPhone/iPad/macOS 等平台的自适应界面、自定义排版、安全区处理与窗口交互。

限制:资料未提供安装命令、收费或价格信息;部分 API 有系统版本要求(如 iOS 16+、iOS 17+),低版本需回退方案。