SwiftUI边栏使额外的空间可点击



我读到Spacer((不适用于onTapGesture,因为它需要可见/不透明的视图(?(。

这是我的代码片段。

HStack {
SideMenuView(dark: self.$dark, show: self.$show, navigationManager: navigationManager)
.preferredColorScheme(self.dark ? .dark : .light)
.offset(x: self.show ? 0 : -UIScreen.main.bounds.width / 1.2)
Spacer(minLength:  0)
}
.background(Color.primary.opacity(self.show ? (self.dark ? 0.05 : 0.2) : 0).edgesIgnoringSafeArea(.all))
.onTapGesture {
withAnimation(.default) {
show.toggle()
}
}

我想解决的是让侧边栏旁边的额外空间可以点击(这样它就可以折叠(。使用当前代码,屏幕上任何没有接收到输入的地方都会触发TapGesture(侧边栏中的文本标签,旁边有额外的空间(

这里有我错过的风景吗?或者我需要添加一个Rectangle((并计算额外的空间吗?

请参阅.contentShape,它允许您指定命中区域。

我经常看到的另一个解决方案是使用几乎透明的颜色。像SwiftUIX所做的,例如Color.almostClear

因为那样它看起来仍然是透明的,但可以打击

最新更新