跳到主要内容iOS 26 Liquid Glass TabBar 适配实战与实现 | 极客日志Python
iOS 26 Liquid Glass TabBar 适配实战与实现
!图片 引子 话说侠客岛旁的'码农山庄'里,有位青年开发者石破天,一手 SwiftUI 功夫练得炉火纯青,身旁常伴着心思缜密的产品女侠阿绣。 !图片 这日,山庄接到一桩棘手活计——玄铁老怪掌管的'APP 审核阁'放出话来,凡要上 iOS 26 的 APP,必过**Liquid Glass**设计关,尤其**Tab Bar**这块,稍有差池便打回重练。 内容概览: 引子 📱 初探 iOS 26…
ServerBase38K 浏览 
引子
话说侠客岛旁的'码农山庄'里,有位青年开发者石破天,一手 SwiftUI 功夫练得炉火纯青,身旁常伴着心思缜密的产品女侠阿绣。

这日,山庄接到一桩棘手活计——玄铁老怪掌管的'APP 审核阁'放出话来,凡要上 iOS 26 的 APP,必过Liquid Glass设计关,尤其Tab Bar这块,稍有差池便打回重练。
本文内容概览:
石破天与阿绣不敢怠慢,即刻开干,誓要破解这 Liquid Glass 的 Tab Bar 玄机。
1. 📱 初探 iOS 26 的 Tab Bar:旧功新用,基础先扎牢
阿绣翻出 iOS 18 的适配文档,对石破天道:'天哥,若咱们之前吃透了 iOS 18 的 Tab Bar 更新,这次应对 Liquid Glass 便是胸有成竹;若是没做过,也得先搭个最简框架试试水。'

说罢,石破天便敲出一段TabView基础代码——用Tab包裹页面,配上系统图标,正是健身 APP 常用的'运动记录'与'动作库'标签:
TabView {
Tab("Workouts", systemImage: "dumbbell.fill") {
()
}
(, systemImage: ) {
()
}
}
微信扫一扫,关注极客日志
微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
相关免费在线工具
- curl 转代码
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
- Base64 字符串编码/解码
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
- Base64 文件转换器
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
- Markdown 转 HTML
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML 转 Markdown 互为补充。 在线工具,Markdown 转 HTML在线工具,online
- HTML 转 Markdown
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML 转 Markdown在线工具,online
- JSON 压缩
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
WorkoutsView
Tab
"Exercises"
"figure.strengthtraining.traditional"
ExercisesView
他用 Xcode 26 编译后,先在 iOS 18 设备上运行——Tab Bar 还是老样子,扎实却少了灵动感:
可一换 iOS 26 设备,屏幕上的 Tab Bar 竟变了模样:
通体透着Liquid Glass的通透感,像蒙了一层薄雾,与页面浑然一体。
阿绣指着屏幕皱眉:'你看,之前咱们在 Tab Bar 上方加的紫色'添加按钮',现在挡住了下方内容,这可不符 Liquid Glass'分层不遮挡'的规矩,玄铁老怪见了必定挑刺。'
2. 🔍 拆解 Tab Bar 的模糊特效:藏在'滚动容器'里的玄机
石破天盯着屏幕犯愁,阿绣却忽然想起苹果健康 APP 的设计:'健康 APP 的列表是能滚到 Tab Bar 底下的,还带着模糊效果,不如咱们也试试把列表'拉'到 Tab Bar 下面?'
二人先分析当前页面结构——原来他们用VStack叠了筛选栏、列表和按钮,按钮挡住了列表,导致 Tab Bar 无法'穿透'显示模糊:
VStack {
ScrollView(.horizontal) {
}
List {
}
Button {
}
}
列表果然延伸到了 Tab Bar 下方,Tab Bar 自动透出一层模糊,与健康 APP 如出一辙!
他拍腿大笑:'原来如此!Liquid Glass 的模糊特效是默认给'覆盖在滚动容器上的 Tab Bar'的,之前有按钮挡着,滚动容器没贴到 Tab Bar,自然出不来效果。'
3. 📜 给 TabView 加'缩骨功':tabBarMinimizeBehavior 显神通
刚解决模糊问题,玄铁老怪便飘然而至,扫了眼屏幕道:'模糊是有了,可用户滚动时 Tab Bar 还这么显眼,不够灵动,算不得精通 Liquid Glass。'
石破天心中一紧,阿绣却递过一份 iOS 26 新 API 文档:'天哥,试试这个tabBarMinimizeBehavior修饰符,就像给 Tab Bar 练了'缩骨功',滚动时能自动变小!'
TabView {
}
.tabBarMinimizeBehavior(.onScrollDown)
运行后,手指向下滑动列表,Tab Bar 果然悄悄'缩'了一圈,既不遮挡内容,又没完全消失——玄铁老怪眯眼瞧了瞧,没说话,但眉头舒展了些。
石破天暗自庆幸:'还好这修饰符只在 Liquid Glass 模式下生效,要是在 iOS 18 老设计(Old Style)里用了没反应,今日可就栽了。'
4. 🧩 给 Tab Bar 加'配件':tabViewBottomAccessory 的坑与悟
解决了最小化,石破天又惦记起之前删掉的'添加动作'按钮:'能不能把按钮加回 Tab Bar 上方?'
阿绣指着文档里的tabViewBottomAccessory说:'这是 iOS 26 新出的'配件视图',能放在 Tab Bar 上面,试试?'
TabView {
}
.tabBarMinimizeBehavior(.onScrollDown)
.tabViewBottomAccessory {
Button("Add exercise") {
}
.purpleButton()
}
可运行后却发现问题:无论切到'运动记录'还是'动作库',这按钮都在——阿绣摇头道:'苹果的用法是'全局配件',比如音乐 APP 的播放器控制,每个页面都需要;咱们这按钮只在'动作库'有用,放这就画蛇添足了。'
石破天只好删掉配件,叹道:'看来此路不通,得另想办法。'
5. 🔍 误入'搜索 - tab'歧途:role: .search 的真实用途
二人正琢磨,阿绣忽然想起健康 APP 右下角有个搜索按钮:'要不试试给 Tab 加个'搜索角色'?文档里说role: .search能把 Tab 放右边。'
Tab("Add", systemImage: "plus", value: Tabs.exercises, role: .search) {
}
可一点这个'加号 Tab',竟弹出个全屏页面——哪里是浮动按钮!
阿绣哭笑不得:'原来role: .search 是给'搜索页面'用的,不是随便放按钮的,咱们这是'张冠李戴'了。'石破天挠挠头:'看来得放弃 TabView 的思路,直接在页面上做文章。'
6. ✨ 柳暗花明:ZStack+glassEffect 造'玻璃态浮动按钮'
眼看天色渐暗,阿绣忽然灵光一闪:'Liquid Glass 讲究'分层',咱们用ZStack把按钮'浮'在页面上,再加个glassEffect,不就贴合设计了?'
ZStack(alignment: .bottomTrailing) {
VStack {
ScrollView(.horizontal) {
}
List {
}
}
Button(action: {
}) {
Label("Add Exercise", systemImage: "plus")
.bold()
.labelStyle(.iconOnly)
.padding()
}
.glassEffect(.regular.interactive())
.padding([.bottom, .trailing], 12)
}
运行后,一个带着薄雾质感的'加号按钮'浮在列表右下角,滚动时既不遮挡内容,又和 Tab Bar 的 Liquid Glass 风格浑然一体——玄铁老怪凑过来细看,手指点了点按钮,又滑动列表,半晌才道:'这按钮虽没用到 TabView 的 API,却吃透了 Liquid Glass 的'分层融合'心法,算你们过关。'
尾声:技术如侠,心法为上
此事过后,石破天与阿绣悟得一理——iOS 26 的 Liquid Glass 从不是刁难人的'武功秘籍',而是倒逼开发者贴合用户体验的'心法'。
TabView的种种新特性,无论是tabBarMinimizeBehavior的灵动、tabViewBottomAccessory的全局适配,还是glassEffect的通透,核心都在'让界面服务内容,而非喧宾夺主'。
玄铁老怪虽严苛,见二人不墨守成规、能灵活拆解问题,也不禁点头:'后生可畏,这关,你们过了!'而石破天与阿绣也明白,往后应对新系统,只需紧抓设计哲学,再难的技术关,也能如侠客破阵般,迎刃而解。