macOS平台SwiftUI实现宽松大尺寸侧边栏的官方方法问询
有官方原生实现方案,该特性支持 macOS 13 Ventura 及以上版本。
你只需要在侧边栏的List组件上添加两个配置即可:
- 先指定列表样式为侧边栏样式:
.listStyle(.sidebar) - 再通过环境变量指定侧边栏样式为宽松版本:
.environment(\.sidebarStyle, .large)
修改后的完整示例代码如下:
struct TestView: View { var body: some View { NavigationView { List { Label("Item 1", systemImage: "1.circle.fill") Label("Item 2", systemImage: "2.circle.fill") Label("Item 3", systemImage: "3.circle.fill") } .listStyle(.sidebar) .environment(\.sidebarStyle, .large) } } }
配置完成后系统会自动应用宽松侧边栏的规范:自动放大图标、字体,调整条目间距,无需手动调整其他样式参数,效果和提醒事项、App Store的侧边栏完全一致。
如果你需要兼容 macOS 12 及更低版本,可以通过手动配置参数模拟效果,参考实现如下:
struct TestView: View { var body: some View { NavigationView { List { Label("Item 1", systemImage: "1.circle.fill") Label("Item 2", systemImage: "2.circle.fill") Label("Item 3", systemImage: "3.circle.fill") } .listStyle(.sidebar) .listRowHeight(44) .font(.title3) .environment(\.symbolScale, .large) } } }
内容的提问来源于stack exchange,提问作者Hundley
相关产品推荐
相关产品推荐

