迅捷 – 获得WatchOS数字皇冠价值
发布时间:2020-12-14 04:27:32 所属栏目:百科 来源:网络整理
导读:我一直在研究制作Apple Watch应用程序,但我在获取Digital Crown的价值时遇到了一些麻烦.我查看了WKCrownSequencer,但不确定如何处理它.有人可以告诉我如何获得一个值为1-10的变量,当你转动数字冠时它会改变.谢谢! 解决方法 您需要使您的InterfaceController
我一直在研究制作Apple Watch应用程序,但我在获取Digital Crown的价值时遇到了一些麻烦.我查看了WKCrownSequencer,但不确定如何处理它.有人可以告诉我如何获得一个值为1-10的变量,当你转动数字冠时它会改变.谢谢!
解决方法
您需要使您的InterfaceController子类符合WKCrownDelegate并实现crown dcDotate方法.
如果你希望你的值在1到10之间,你只需要实现一些简单的逻辑来检查你添加rotationDelta时它的值是什么,如果它超出1-10的范围,则将值映射到1或10,取决于新值将超过的方向.我假设你想要值为Int,如果没有,只需删除rotationDelta到Int的转换,值将为Double. 请记住,rotationDelta为1.0表示表冠的完整旋转,而rotationDelta则根据旋转方向改变其符号. 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)") } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |