SuperAPI AI 工具集

swiftui-liquid-glass

编程与开发

查看项目

更新于 10-16 05:53

技能介绍

用途:在 iOS 26+ 上实现或审查 SwiftUI Liquid Glass(动态半透明材质),用于自定义控件与导航表面,而非通用内容背景。系统标准栏与呈现使用当前 SDK 构建时会自动采用。

主要能力:glassEffect(:in:) 在视图后应用玻璃,默认 .regular 与 Capsule 形状;Glass 提供 .regular、.clear、.identity,以及 .tint(:)、.interactive(:);GlassEffectContainer 包裹多个玻璃视图以共享渲染、混合与变形,spacing 控制邻近形状何时开始混合;glassEffectID(:in:) 提供稳定标识用于层级变化时的变形,glassEffectUnion(id:namespace:) 合并为单一玻璃形状,glassEffectTransition(:) 控制出现/消失;按钮样式包括 .glass、.glassProminent、可配置的 .glass(:)(如 .glass(.clear))。相关 iOS 26 API 有 scrollEdgeEffectStyle、backgroundExtensionEffect、ToolbarSpacer。

使用方式:新增功能时先确定目标表面,决定形状与显著性,将成组玻璃元素包入 GlassEffectContainer,在布局与外观修饰符之后应用 .glassEffect(),仅对可交互元素加 .interactive(),在层级随动画变化处用 glassEffectID(_:in:) 加变形过渡,用 if #available(iOS 26, *) 门控并提供旧版本回退。改进现有功能时替换自定义控件/导航背景、包装同级玻璃元素、改用玻璃按钮样式。审查时按内容/控件归属、布局顺序、容器范围、交互性、过渡、可用性、辅助功能设置与回退逐项追踪。

适用场景:浮动控件、自定义栏、临时控件等。限制与注意:玻璃应保持在控件/导航层;静态状态不要用 .interactive() 或动作槽;相关效果共用一个容器,避免嵌套;.glassEffect() 应在布局/外观之后;需测试减弱透明度、减弱动态效果、对比度与可读性;无 iOS 26 前路径需门控并保留功能性回退;clear 玻璃在明亮或复杂背景上需加暗化/对比处理;glassEffectID/glassEffectUnion 的 ID 需 Sendable,MainActor 标注的 API 保留在 SwiftUI UI 代码中。完整 API 参考见 references/liquid-glass.md。