移动/游戏
在 iOS 26+ SwiftUI 中采用或审查…
用原生 Liquid Glass API 实现、重构或审查 SwiftUI 界面,并保证可用性、组合方式与性能正确。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 49/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
在 iOS 26+ SwiftUI 中采通用
解决思路
- 优先使用原生 Liquid Glass API(glassEffect、GlassEffectContainer、glass 按钮样式),而不是自定义模糊。
- 当多个玻璃元素同时存在时,用 GlassEffectContainer 包裹它们并调整 spacing。
- 把 .glassEffect(...) 应用在布局和视觉修饰符之后。
- 对可点击或可聚焦的元素使用 .interactive(),仅在有用户交互处使用。
- 保持相关元素的形状、tint 和间距一致,以获得统一的视觉效果。
- 用 #available(iOS 26, *) 做可用性判断,并为旧版本提供非玻璃的 fallback(如 .ultraThinMaterial)。
- 审查现有功能时:检查哪里该用、哪里不该用 Liquid Glass,验证修饰符顺序、形状用法和容器放置,检查 iOS 26+ 可用性处理与合理 fallback。
- 改进现有功能时:找出适合玻璃处理的组件(表面、chip、按钮、卡片),在多个玻璃元素出现处重构为 GlassEffectContainer,仅对可点击或可聚焦元素引入 interactive glass。
- 实现新功能时:先设计玻璃表面与交互(形状、突出程度、分组),在布局/外观修饰符之后添加玻璃修饰符,仅在视图层级随动画变化时添加 morphing 过渡。
- 按需使用 .glassEffect(.regular.tint(...).interactive(), in: .rect(cornerRadius: ...))。
- 对操作按钮使用 .buttonStyle(.glass) 或 .buttonStyle(.glassProminent)。
- 当视图层级变化时,用 glassEffectID 配合 @Namespace 添加 morphing 过渡。
- 为较早 iOS 版本提供 fallback 材质和视觉效果。
- 审查清单:确认存在 #available(iOS 26, *) 与 fallback UI;多个玻璃视图被 GlassEffectContainer 包裹;glassEffect 在布局/外观修饰符之后;interactive() 仅用于有用户交互处;glassEffectID 与 @Namespace 用于 morphing;形状、tint、间距在整个功能中保持一致。
适用边界 · 注意事项
- 目标平台低于 iOS 26 且无法提供非玻璃 fallback 时。
- 仅需简单背景模糊、不需要原生 Liquid Glass 交互与组合语义时。
- 没有用户交互的元素上不要使用 interactive()。