Swift   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了迅捷 – 获得WatchOS数字皇冠价值大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我一直在研究制作Apple Watch应用程序,但我在获取Digital Crown的价值时遇到了一些麻烦.我查看了WKCrownSequencer,但不确定如何处理它.有人可以告诉我如何获得一个值为1-10的变量,当你转动数字冠时它会改变.谢谢! 您需要使您的InterfaceController子类符合WKCrownDelegate并实现crown dcDotate方法. 如果你希望你的值在1
我一直在研究制作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)")
    }
}

大佬总结

以上是大佬教程为你收集整理的迅捷 – 获得WatchOS数字皇冠价值全部内容,希望文章能够帮你解决迅捷 – 获得WatchOS数字皇冠价值所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。