我有一个自定义的SwiftUI
视图,其中在HStack
中,我在两端有两个VStack
。
我需要每个都有自己的双击手势来显示和隐藏VStack
中的项目。
以下是我尝试过的:
@State var displayRewind = false
VStack {
Image("rewind")
.frame(width: 74, height: 32, alignment: .center)
.foregroundColor(Color.white)
.opacity(self.displayRewind ? 1 : 0)
Text("x seconds")
.opacity(self.displayRewind ? 1 : 0)
}
.onTapGesture(count: 2) {
withAnimation {
displayRewind.toggle()
}
DispatchQueue.main.asyncAfter(deadline: .now()+1) {
withAnimation {
displayRewind.toggle()
}
}
}
现在有了这个,什么都没发生。如果我删除文本上的不透明度,我会看到文本,我可以双击以显示图像。
我们的目标是将这些东西一起展示和隐藏。
如果使用opacity=0,则会阻止tap事件。这是我在测试中使用的代码,使用不透明度=0.01:
VStack (spacing: 40) {
Image(systemName: "globe")
.frame(width: 74, height: 32, alignment: .center)
.foregroundColor(Color.blue)
Text("x seconds")
}
.opacity(displayRewind ? 1 : 0.01)
.onTapGesture(count: 2) {
withAnimation {
displayRewind.toggle()
}
DispatchQueue.main.asyncAfter(deadline: .now()+2) {
withAnimation {
displayRewind.toggle()
}
}
}