【问题标题】:Show and Hide Everything in a VStack显示和隐藏 VStack 中的所有内容
【发布时间】:2021-09-23 01:24:57
【问题描述】:

我有一个自定义的SwiftUI 查看在HStack 中我在两端有两个VStacks。

我需要每个都有自己的双击手势来显示和隐藏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()
           }
      }
 }

现在,没有任何反应。如果我删除文本上的不透明度,我会看到文本并且我可以双击以显示图像。

我们的目标是将这些显示和隐藏在一起。

【问题讨论】:

    标签: ios swiftui vstack hstack swiftui-ontapgesture


    【解决方案1】:

    如果你使用 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()
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多