gpt4 book ai didi

swift - 获取 WatchOS Digital Crown 值

转载 作者:搜寻专家 更新时间:2023-10-31 21:46:44 24 4
gpt4 key购买 nike

我一直在做一些关于制作 Apple Watch 应用程序的研究,但我在获得 Digital Crown 的值(value)时遇到了一些麻烦。我查看了 WKCrownSequencer 但不确定如何处理它。谁能告诉我如何获取值 1-10 的变量,该变量会在您转动数码表冠时发生变化。谢谢!

最佳答案

您需要使您的 InterfaceController 子类符合 WKCrownDelegate 并实现 crownDidRotate 方法。

如果你希望你的值在 1 到 10 之间,你只需要实现一些简单的逻辑来检查当你添加 rotationalDelta 时值是多少以及它是否会超出范围 1-10,将值映射到 1 或 10,具体取决于新值超出的方向。我假设您希望 valueInt,如果不是,只需删除 rotationalDeltaInt 的转换并value 将为 Double

请记住,1.0 的 rotationalDelta 表示表冠的完整旋转,rotationalDelta 根据旋转方向更改其符号。

class MyInterfaceController: WKInterfaceController, WKCrownDelegate {
var value = 1
@IBOutlet var label: WKInterfaceLabel!

override func awake(withContext context: Any?) {
super.awake(withContext: context)
crownSequencer.delegate = self
}

func crownDidRotate(_ crownSequencer: WKCrownSequencer?, rotationalDelta: Double) {
let newValue = value + Int(rotationalDelta)
if newValue < 1 {
value = 1
} else if newValue > 10 {
value = 10
} else {
value = newValue
}
label.setText("Current value: \(value)")
}
}

关于swift - 获取 WatchOS Digital Crown 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45726619/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com