SuperAPI AI 工具集

axiom-swiftui-layout

通用与其它

查看项目

更新于 10-15 20:11

技能介绍

用途:帮助开发者构建能响应可用空间、而非依赖设备假设的 SwiftUI 布局,适用于 iPad 多任务、分屏、Stage Manager 及 iOS 26 自由窗口等场景。核心原则是布局应响应容器,而非对设备的预设。

主要能力:提供决策树与工具选择指南。按可用空间适配时,挑选最佳变体用 ViewThatFits,水平/垂直动画切换用 AnyLayout 加条件,读取尺寸做计算用 onGeometryChange(iOS 16+),自定义算法用 Layout 协议。按平台特征适配时,宽度紧凑/常规用 horizontalSizeClass(注意 iPad 限制),辅助功能字号用 dynamicTypeSize.isAccessibilitySize,平台差异用 #if os()。按窗口形状适配时,纵横比语义用几何加自定义阈值,自动显隐列用 NavigationSplitView,窗口生命周期用 scenePhase。

使用方式:资料给出四类模式。ViewThatFits 用于 2-3 个布局变体自动选第一个适配项,但不暴露所选变体。AnyLayout 用于需要动画过渡或需知晓当前布局状态时,可结合 horizontalSizeClass 或 dynamicTypeSize 切换。onGeometryChange 优先于 GeometryReader,用于读取实际尺寸做计算,如按宽度算列数或判断宽窗。GeometryReader 仅在 iOS 15 及更早或需在布局阶段读取几何时使用,且必须用 .frame() 约束,否则会贪婪占满空间。

适用场景:iPad 与 iPhone 通用布局、分屏/Stage Manager 下布局破裂、尺寸类不够用、竖屏与横屏不同布局、为 iOS 26 窗口缩放做准备。

限制与注意:iPad 尺寸类仅在约 33% 宽度或 Slide Over 时才变 compact,全屏横竖屏均为 regular,需更细控制应使用几何。iOS 26 起 UIRequiresFullScreen 已弃用,NavigationSplitView 自动适配列显隐。应避免设备方向监听、UIScreen.main.bounds、设备型号判断、无约束 GeometryReader、把尺寸类当方向代理等反模式。资料未提供安装命令、收费或平台支持信息。