SwiftUI 如何使侧边栏会自动变得稍微透明?

13 min read

您可以使用侧边栏的 NavigationView.navigationBarColor() 修饰符来设置导航栏的颜色和透明度,然后通过将 List 嵌入到 Section 中,再给 Section 添加背景颜色和透明度来为侧边栏的其他部分设置背景。

以下是一个示例,演示了如何将侧边栏的导航栏设置为半透明,然后使侧边栏的其他部分稍微透明:

struct SidebarView: View {
    var body: some View {
        NavigationView {
            List {
                Section {
                    NavigationLink(destination: Text("First View")) {
                        Text("First")
                    }
                    NavigationLink(destination: Text("Second View")) {
                        Text("Second")
                    }
                }
            }
            .listStyle(SidebarListStyle())
            .navigationBarTitle("Sidebar")
            .navigationViewStyle(DoubleColumnNavigationViewStyle())
            .navigationBarColor(Color.blue.opacity(0.5)) // 设置导航栏颜色和透明度
        }
        .background(Color.white.opacity(0.8)) // 设置侧边栏的背景颜色和透明度
    }
}

顶部的导航栏将具有半透明的蓝色背景,侧边栏的其他部分将稍微透明。