按钮显示在顶部,但不可按

时间:2019-09-21 01:38:06

标签: swiftui

public struct Frontside: View
{
  @Binding public var kanatext: String

  public var body: some View
  {
    ZStack{
      RoundedRectangle(cornerRadius: 25, style: .continuous)
        .foregroundColor(Color.red)
        .frame(width: 160, height: 160)
        .zIndex(0)

      Text(self.kanatext)
        .font(.title)
        .fontWeight(.black)
        .padding(50)
        .zIndex(1)

      VStack {
        Spacer()
        HStack {

          Button(action: {
            print("button pressed")
          }) {
            Image(systemName: "xmark.circle")
              .font(.title)
          }
          .mask(Circle())
          .opacity(0.4)



          Button(action: {
            print("button pressed")
          }) {
            Image(systemName: "checkmark.circle")
              .font(.title)
          }
          .mask(Circle())
          .opacity(0.4)
        }
      }
      .zIndex(2)
    }
  }
}

在上面的代码片段中,我使用了Zstack来对闪存卡的不同部分,背景,文本以及正确/错误按钮进行分层。最上层是按钮,它们可以正确显示,但是由于某些原因它们实际上是不可按下的。

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用onTapGesture?这可能与您正在使用ZStack的事实有关。

尝试类似的东西:

Image(systemName: "checkmark.circle")
    .font(.title)
    .onTapGesture {
       print("button pressed")
    }

在这种情况下,无需将图像包装在Button中。 如果这样不起作用,请向您的VStack中添加onTapGesture,并将其为空。