添加自定义导航按钮会限制按钮的可触摸区域,从而使按下变得更加困难,从而降低用户体验。我希望 V 形的左侧有一些空间,但它不会延伸到前缘。我也不想添加填充,因此 V 形更靠右。
更详细地了解我所尝试的...
已设置背景灰色以突出显示触摸区域
.toolbar {
ToolbarItem(placement: .navigationBarLeading) {
AppBackButton(action: {
self.dismiss()
})
.background(.gray)
}
}
.toolbar {
ToolbarItem(placement: .navigationBarLeading) {
AppBackButton(action: {
self.dismiss()
})
.background(.gray)
.padding(.leading, -16)
}
}
我不仅仅是想删除文本。理想情况下,我希望所有按钮图像都达到边框,但可触摸区域延伸到边缘,就像默认的后退按钮一样。我怎样才能实现这个目标?
我能够重现您的问题。
这确实看起来不一致,不可能创建一个与本机后退按钮行为相同的
ToolbarItem
。
作为解决方法,您可以使用叠加层:
struct Subview: View {
@Environment(\.dismiss) private var dismiss
var body: some View {
VStack {
Text("Subview")
}
.frame(maxWidth: .infinity, maxHeight: .infinity)
.navigationBarBackButtonHidden()
.overlay(alignment: .topLeading) {
AppBackButton(action: {
self.dismiss()
})
.background { Color.gray }
}
// .toolbar {
// ToolbarItem(placement: .navigationBarLeading) {
// AppBackButton(action: {
// self.dismiss()
// })
// .background(.gray)
// }
// }
}
}