如何在 swiftUI 中的选项卡栏上方实现底部工作表?

问题描述 投票:0回答:1

我正在开发一个 iOS 应用程序,我想实现一个显示在 TabBar 上方的底部工作表。

我想要附件中的外观。 enter image description here

我很感谢有关如何实现此用户界面行为的任何指导。谢谢!

我探索了各种 SwiftUI 布局和手势,但我不确定如何使底部工作表与 TabBar 重叠。

尝试拨打电话时:

struct ContentView: View {
@State private var isBottomSheetPresented = false

var body: some View {
    TabView {
    // ...
    }
    .sheet(isPresented: $isBottomSheetPresented) {
        //....
    }
}

工作表仍然与选项卡栏重叠,它位于其上方。

ios swift swiftui tabbar bottom-sheet
1个回答
0
投票

从 iOS 16 开始,您可以使用一个修改器

presentationDetents(_:)

struct ContentView: View {
    @State private var isBottomSheetPresented = false
    
    var body: some View {
        TabView {
            VStack {
                Text("Main View")
                Button("show") {
                    isBottomSheetPresented.toggle()
                }
            }
            .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .center)
            .background(Color.green)
        }
        .sheet(isPresented: $isBottomSheetPresented) {
            Text("some sheet content")
                .presentationDetents([.medium, .large])
        }
    }
}

之前-iOS 16需要移植

UISheetPresentationController

© www.soinside.com 2019 - 2024. All rights reserved.