定义枚举,其中菜单项遵循 IMenuItem
enum MenuItems: String, IMenuItem {
case one = "one"
case two = "two"
case three = "three"
}
selected - 传递绑定到 @State var selected : MenuItems? 的值values - 传递 allCases 作为参数MenuBar(values: MenuItems.allCases, selected: $selected)
.onSelectionChanged{ item in }
strategy - 项目菜单宽度分配的默认策略是 auto| 尺寸策略 | 描述 |
|---|---|
| fit | 分配所有可用空间 不可滚动 |
| auto | 根据内容自动调整大小 |
| flex(CGFloat) | 设置最小宽度 |
color - 默认值是 .black
style - 默认样式是 round
| 样式 | 描述 |
|---|---|
| round | 圆角 |
| square | 直角 |
@State var selected : MenuItems?
VStack{
MenuBar(values: items, selected: $selected, strategy: .flex(102), color: .green)
MenuBar(values: items, selected: $selected, color: .purple, style: .square)
MenuBar(values: items, selected: $selected, strategy: .fit, color: .blue)
MenuBar(values: items, selected: $selected, color: .red)
}
查看 MenuContentView.swift 中的示例预览,或创建一个项目,添加包并将 MenuContentView() 放入 ContentView() 中