如何在macOS的SwiftUI中实现窗口顶部的多层堆叠工具栏
SwiftUI实现工具栏垂直堆叠的解决方案
默认情况下,SwiftUI中多个.toolbar修饰符会将所有工具栏按钮合并到同一行显示。要实现两组工具栏上下堆叠的效果,只需将两组工具栏内容放入同一个.toolbar修饰符内,并用VStack垂直包裹即可。
修改后的代码示例:
struct ToolbarView: View { @ObservedObject var dm: DrawModel init(_ dm: DrawModel) { self.dm = dm } var body: some View { VStack{} .toolbar { ToolbarItemGroup(placement: .navigationBarTrailing) { // 根据需求选择合适的放置位置 VStack(alignment: .trailing, spacing: 12) { AddToolbarItems(dm, toolbar1) AddToolbarItems(dm, toolbar2) } } } } }
补充说明:
- 移除原有的两个独立
.toolbar修饰符,将所有工具栏内容整合到一个.toolbar中 - 使用
ToolbarItemGroup指定工具栏的放置位置,比如导航栏右侧.navigationBarTrailing、底部工具栏.bottomBar等 - 通过
VStack的alignment参数控制每组按钮的对齐方式,spacing参数调整两组工具栏的垂直间距
如果你的AddToolbarItems返回的是分散的单个按钮而非横向排列的视图,可在外层额外包裹HStack确保每组按钮横向排布:
VStack(alignment: .trailing, spacing: 12) { HStack(spacing: 16) { AddToolbarItems(dm, toolbar1) } HStack(spacing: 16) { AddToolbarItems(dm, toolbar2) } }
内容的提问来源于stack exchange,提问作者Keith
相关产品推荐
相关产品推荐

