如何使用SwiftUI从Apple Watch Digital Crown对@State变量更改触发函数?

问题描述 投票:0回答:1

下面的代码在SwiftUI中创建一个环,当旋转数字王冠时该环就完成了。我想在“ crownValue”状态变量的值达到1.0(即圆圈完全可见)时触发一个函数。

我该如何具有对表冠值变化做出反应以执行Web请求的功能?

谢谢

struct commandDetailView: View {

    @State var crownValue = 0.1


    var body: some View {
        VStack {
            Circle()
                .trim(from: 0.0, to: CGFloat(crownValue / 5.0))
                .stroke(Color.blue, style: StrokeStyle(lineWidth: 12, lineCap: CGLineCap.round, lineJoin: .round))
                .frame(width: 120, height: 120)

            Text("Spin to Start Car")


        }
    .focusable(true)
        .digitalCrownRotation($crownValue, from: 0.1, through: 5.0, sensitivity: .low, isContinuous: false, isHapticFeedbackEnabled: true)
        .onAppear() {

        }

    }
}
swift binding state watchkit swiftui
1个回答
0
投票

不幸的是,现在最容易做的事情是使用包装crownValue的自定义绑定。 (不幸的是,由于我与苹果公司就didSet缺少@State以及如何解决该问题(尚无解决方案),持公开票证。)>


var crownValueBinding: Binding<Double> {
  Binding<Double>(
    get: { self.crownValue },
    set: { newValue in
      self.crownValue = newValue
      self.myFunc() // Whatever you like
    }
  )
}
© www.soinside.com 2019 - 2024. All rights reserved.