如何解决显示和隐藏 VStack 中的所有内容
我有一个自定义的 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,它会阻止点击事件。 这是我用于测试的代码,使用 opacity=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()
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。