SwiftUI-如何将Navigation和SideBar的宽度设置为相同的宽度

时间:2020-08-12 20:33:02

标签: navigation swiftui ipados

.all(枚举)

我有一个带有SideBar和MainView的内容视图。我想控制SideBar的宽度。我该怎么做?因此,我使用的代码以及无法正常运行的代码。导航视图的宽度比NavBarView的宽。

struct ContentView: View {
    // .....
    var body: some View {
        HStack{
            NavigationView {
                
                SideBarView_HWS().frame(minWidth: 200,idealWidth: 250,maxWidth: 260, maxHeight: .infinity )
                
                BodyInfoStartView()
                
            } //  .frame(minWidth: 200,idealWidth: 250,maxWidth: 260, maxHeight: .infinity ) <<< this isn't working
        }
    }
}

struct SideBarView_HWS: View {
    //....
    @State private var clientExpanded: Bool = true
    @State var selection: String?
    
    var body: some View {
        VStack  {
            List(selection: $selection) {
                ForEach(agendaItems, id: \.self) { string in
                    NavigationLink(destination: AgendaFrameView(description: string)) {
                        Text(string)
                    }
                }
                NavBarSection2()
            }
            .listStyle(SidebarListStyle())
            
            Divider()
            
            DisclosureGroup("Show some Text", isExpanded: $clientExpanded) {
                Text("Some Text...")
                    .padding()
                Text("Hello, Mars!").padding()
            }
            .padding()
            
            Divider()
            
            Text( "<Moonwalker is walking>")
        }
    }
}

BTW NavBarSection2只是另一个带有导航链接的ForEach。 我的目标是我需要具有相同的maxWidth约束的sideBar和NavigationView。如果将.frame添加到navigationView,则NavigationView和SideBar消失。如果我仅对SideBar使用Width约束的.frame,那么只有sideBar会缩小到正确的大小,但NavigationView会保持其过宽的大小。它有一些未使用的不需要的空间。

我该如何解决?适用于iPadOS(不是iPhone)

0 个答案:

没有答案