在SwiftUI中,请考虑以下导航栏:
这是尾随.navigationBarItems
的声明方式:
HStack(spacing: 0) {
Button(action: {
self.addListModal = true
}, label: {
NavBarImage(image: "plus")
})
// more buttons here
这是
NavBarImage
结构:struct NavBarImage: View {
var image: String
var body: some View {
ZStack {
Rectangle().foregroundColor(Color.red).frame(width: 40, height: 45)
Image(systemName: image)
}
}
}
那里有红色,所以我可以看到每个按钮的可轻击区域应该是什么。我将这个带有
ZStack
想法的Rectangle
介绍给我,以使图像更易于拍打。现在,我想将项目向右移动,使它们更符合下面的列表内容。我尝试将
.offset
添加到我的HStack
中:HStack(spacing: 0) {
// buttons
}
.offset(x: 15, y: 0)
产生以下结果:
所以这对我来说看起来很完美。但是,问题是最右边的导航按钮的可点击区域在右边被切除了。
我在此处以绿色说明了可轻击区域的切除情况:
该按钮的绿色区域不再注册点击。
我尝试在
.padding
上使用负的尾随HStack
,但这没有什么区别。有什么办法可以纠正此问题,也许是通过在内容 View 的UINavigationBar
中使用一些init()
声明来解决的?编辑:
我只是尝试将
.accessibility
添加到Rectangle
中,结果是相同的:Rectangle().foregroundColor(Color.red)
.accessibility(label: Text(image))
.frame(width: 40, height: 45)
最佳答案
尝试改用
HStack(spacing: 0) {
// buttons
}
.padding(.trailing, 15)
关于ios - 使用偏移时剪切导航栏项目的可点击区域,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58847764/