SwiftUI按钮操作不起作用,但是OnTapGesture

时间:2020-03-05 10:43:12

标签: ios swift uibutton swiftui action

您好,我正在尝试实现简单的功能,但是以某种方式无法使用按钮的 action ,它从未触发过,不仅在此代码中,而且在我的整个应用程序中,我都在做什么?错误还是SwiftUI的故障。但是 onTapGesture 效果很好。

struct CounterView: View {
@State var counter = 0

var body: some View{

    HStack(alignment: .center, spacing: 8){
        Button(action: {
            //self.counter += 1
            }) {
            HStack {
                Image(systemName: "plus")
            }.padding(4.0)
            .overlay(
                RoundedRectangle(cornerRadius: 4.0)
                    .stroke(lineWidth: 1.0)
                .trim()
            )
                .onTapGesture {
                    self.counter += 1
                }
        }}}

帮助我解决此问题。

2 个答案:

答案 0 :(得分:1)

您需要在图片上设置尺寸

Image(systemName: "plus")
    .font(.system(size: 40, weight: .regular))

答案 1 :(得分:0)

您的代码基本上可以,只是缺少一个} ...

import SwiftUI

struct CounterView: View {
  @State var counter = 0

  var body: some View{

    HStack(alignment: .center, spacing: 8){
      Button(action: {
        self.counter += 1
        print("count from action", self.counter)
      }) {
        HStack {
          Image(systemName: "plus")
        }.padding(4.0)
          .overlay(
            RoundedRectangle(cornerRadius: 4.0)
              .stroke(lineWidth: 1.0)
              .trim()
        )
//          .onTapGesture {
//            self.counter += 1
//        }
      }
    }
  }
}


struct CounterView_Preview: PreviewProvider {
  static var previews: some View {
    CounterView()
  }
}