Swiftui 如何在navigationBarItems中对齐动态按钮
我试图在导航栏的尾部创建一个自定义菜单(基于编辑模式的动态菜单)。我需要3个按钮在“查看”模式,只有一个在“编辑”模式 问题是我无法将按钮向右对齐,如下所示: 如您所见,“完成”按钮位于左侧 我试着添加间隔符(),但没有成功Swiftui 如何在navigationBarItems中对齐动态按钮,swiftui,Swiftui,我试图在导航栏的尾部创建一个自定义菜单(基于编辑模式的动态菜单)。我需要3个按钮在“查看”模式,只有一个在“编辑”模式 问题是我无法将按钮向右对齐,如下所示: 如您所见,“完成”按钮位于左侧 我试着添加间隔符(),但没有成功 .navigationBarItems( leading: BackButton(label: "") { self.presentation.wrappedValue.dismiss() }, t
.navigationBarItems(
leading: BackButton(label: "") {
self.presentation.wrappedValue.dismiss()
},
trailing:
HStack {
if self.mode?.wrappedValue == .inactive {
HStack(alignment: .center, spacing: 20) {
Button(action: {
////////
}) {
Image(systemName: "trash")
.imageScale(.large)
}
////////
Button(action: {
}) {
Image(systemName: "square.and.arrow.up")
.imageScale(.large)
}
CustomEditButton() {
////////
}
}
} else {
HStack {
CustomEditButton() {
/////
}
}
}
}
)
同样的问题。条件语句内部或外部的间隔符()无效。
我注意到,当从NavigationLink屏幕弹出返回视图时,对齐是固定/正确的,尽管。。。
在任何情况下,我使用不透明性使其在我的终端工作,这取决于驱动更改的条件。
在您的情况下,解决方案可能如下所示:
.navigationBarItems(
leading: BackButton(label: "") {
self.presentation.wrappedValue.dismiss()
},
trailing:
ZStack {
HStack(alignment: .center, spacing: 20) {
Button(action: {
////////
}) {
Image(systemName: "trash")
.imageScale(.large)
}
Button(action: {
////////
}) {
Image(systemName: "square.and.arrow.up")
.imageScale(.large)
}
CustomEditButton() {
////////
}
}
.opacity((self.mode?.wrappedValue == .inactive) ? 1.0 : 0.0)
HStack {
CustomEditButton() {
/////
}
}
.opacity((self.mode?.wrappedValue == .inactive) ? 0.0 : 1.0)
}
)
SwiftUI bug,请向苹果提交反馈。我做到了。我很好奇他们需要多长时间才能得到他们通常不需要的答案,但这有可能在下一个版本中得到修复。