SwiftUI中如何隐藏ToolbarItemGroup?零基础开发者求助
SwiftUI ToolbarItemGroup 切换显示实现方案
你可以通过状态变量+条件渲染的方式实现这个需求,因为SwiftUI的ToolbarItemGroup确实没有直接的可见性属性,但我们可以通过控制是否渲染该组来达到切换效果。
修改后的完整代码
import SwiftUI struct ContentView: View { // 定义状态变量记录选中的菜单组,默认显示A组 @State private var selectedGroup = "A" var body: some View { VStack { Text("Content") .toolbar { ToolbarItemGroup { Menu(content: { // 给菜单选项添加点击事件,切换选中状态 Text("A") .onTapGesture { selectedGroup = "A" } Text("B") .onTapGesture { selectedGroup = "B" } }, label:{ Text("Menu")}) } // 根据选中状态决定是否显示A组工具 if selectedGroup == "A" { ToolbarItemGroup { Label("a", systemImage: "questionmark") Label("aa", systemImage: "questionmark") } } // 根据选中状态决定是否显示B组工具 if selectedGroup == "B" { ToolbarItemGroup { Label("B", systemImage: "questionmark") Label("BB", systemImage: "questionmark") } } } } .frame( height: 300 ) .frame( width: 400 ) } } #Preview { ContentView() }
核心逻辑说明
@State private var selectedGroup = "A":用来存储用户当前选择的菜单组,@State是SwiftUI中管理视图内部状态的基本方式,它的变化会自动触发视图刷新。- 菜单选项的
onTapGesture:点击"A"或"B"时更新selectedGroup的值,触发视图重新渲染。 - 条件判断
if selectedGroup == "A":只有当状态匹配时,对应的ToolbarItemGroup才会被渲染到界面上,实现切换显示的效果。
内容的提问来源于stack exchange,提问作者Keith
相关产品推荐
相关产品推荐

