为什么侧边栏菜单不能与 tabview 一起正常工作?

时间:2021-03-03 12:43:47

标签: swiftui

我有一个简单的 SwiftUI 应用程序。我正在使用带有动画的幻灯片菜单,它可以正常工作,但是当我添加 TabView 项目时,幻灯片菜单不起作用。在 image1 中,当单击幻灯片菜单时,它与 image2 一样工作,但是当我像 image3 一样添加 TabView 时,它不起作用。有什么想法吗?

截图:

enter image description here

内容视图:

workbook.setForceFormulaRecalculation(true);

1 个答案:

答案 0 :(得分:1)

我认为问题在于您必须移动 TabBar 视图。所以基本上你需要在 TabBar 中使用 HomeView,然后像这样在 @State 改变时移动整个 TabBar ..:

var body: some View {
    ZStack {
        if isShowing {
            Text("Custom View here")
        }
        
        TabView {
            NavigationView {
                HomeView()
                    .navigationBarItems(leading: Button(action: {
                        withAnimation(.spring()) {
                            isShowing.toggle()
                        }
                    } , label: {
                        Image(systemName: "list.bullet")
                    }))
            }
            .tabItem {
                Image(systemName: "1.circle")
                Text("Page 1")
            }
            NavigationView {
                Text("Page Two")
                    .navigationBarTitle("Page Two")
            }
            .tabItem {
                Image(systemName: "2.circle")
                Text("Page 2")
            }
        }
        .edgesIgnoringSafeArea(.bottom)
        //.cornerRadius(isShowing ? 20 : 0) //<< disabled due to strange effect
        .offset(x: isShowing ? 300 : 0, y: isShowing ? 44: 0)
        .scaleEffect(isShowing ? 0.8 : 1)

    }.onAppear {
        isShowing=false
    }
}

这绝对不是最优的,但我认为这是唯一最好的方法。但是,带有标签栏的动画可能与安全区域很奇怪。

相关问题