定义枚举,其中菜单项遵循 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() 中