Crown皮鞋:WatchKitAPIforForceTouch/DigitalCrown

我对 Apple Watch 引入的新用户交互可能性感到非常兴奋,其中包括 Force Touch 和 Digital Crown。

但是,我在 WatchKit API 中找不到它们的提及。有没有办法从 Force Touch / Digital Crown 接收事件?是否有可能为事件定制处理程序?

14

watchOS 3 添加了WKCrownSequencerWKCrownDelegate以报告数字表冠的状态(例如转速),以及在用户旋转表冠时接收通知。

您可以使用皇冠音序器提供一般输入来控制场景或界面对象。

Apple 已更新其WatchKit Catalog sample code,以包含一个 WKInteceController 表冠音序器示例,演示如何使用 Apple Watch 数字表冠与其他对象进行交互:

class CrownDetailController: WKInteceController, WKCrownDelegate {
    @IBOutlet var velocityLabel: WKInteceLabel!
    @IBOutlet var stateLabel: WKInteceLabel!
    @IBOutlet var pickerView: WKIntecePicker!
    override func awake(withContext context: AnyObject?) {
        super.awake(withContext: context)
        let itemList: [(String, String)] = [
            ("Item 1", "Red"),
            ("Item 2", "Green"),
            ("Item 3", "Blue")
        ]
        let pickerItems: [WKPickerItem] = itemList.map {
            let pickerItem = WKPickerItem()
            pickerItem.caption = $0.0
            pickerItem.title = $0.1
            return pickerItem
        }
        pickerView.setItems(pickerItems)
        crownSequencer.delegate = self
    }
    override func willActivate() {
        // This method is called when watch view controller is about to be visible to user
        super.willActivate()
        crownSequencer.focus()
    }
    @IBAction func focusCrown(sender: AnyObject) {
        crownSequencer.focus()
    }
    func updateCrownLabels() {
        velocityLabel.setText(String(format: "RPS: %2.2lf", crownSequencer.rotationsPerSecond))
        stateLabel.setText(crownSequencer.isIdle ? "Idle: true" : "Idle: false")
    }
    func crownDidBecomeIdle(_ crownSequencer: WKCrownSequencer?) {
        updateCrownLabels()
    }
    func crownDidRotate(_ crownSequencer: WKCrownSequencer?, rotationalDelta: Double) {
        updateCrownLabels()
    }
}
12

目前(Xcode 6.2 beta 3)苹果已经表示,Digital Crown 将在第三方应用程序中上下滚动页面内容,但应用程序无法注册以接收来自它的通知或将其用作输入设备。这似乎很可能是由于担心延迟导致无响应或电池寿命,因为第三方代码仅在 iPhone 上的 WatchKit App Extension 中运行,因此这些事件必须通过无线流发送回手机。

可以在第三方应用程序中使用 Force Touch 作为输入方法。在这一点上,我相信 Apple 建议在任何应用程序中使用 force touch 的唯一用途是显示上下文菜单,第三方开发人员对此具有完全访问权限。您无需注册即可接收强制触摸事件。您只需在界面构建器中创建一个菜单,向其中添加菜单项,然后将这些菜单项连接到您的 WatchKit Watch Extension 中的 IBActions 即可。

然而,苹果鼓励开发人员在http://bugreporter.apple.com提交增强请求,所以这样做是一个好主意,并要求访问这些 API,因为我们中的许多人已经拥有。

10

目前,这两种输入法都没有自定义事件处理程序的能力。开发者论坛上的苹果员工建议提交一个功能请求。我怀疑,一旦我们明年开始创建原生苹果手表应用程序,我们就可以访问数字皇冠 API。目前,它仍然是数据输入的一个重大限制。

7

在 watchOS 2 中,(包含在 Xcode 7 beta 中)Apple 添加了WKIntecePicker以允许您注册委托并响应数字表冠更改。您可以签出文档here

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(193)
如何禁用“这种类型的文件可能会损害您的计算机”弹出窗口
上一篇
Cem微波消解:如何为微波计时器添加额外的秒数
下一篇

相关推荐

  • comeandgetyourlove音乐爱就在你身边

    Come and Get Your Love是一首热门的歌曲,由美国摇滚乐队Redbone演唱。这首歌曲于1974年发行,被收录在他们的专辑《Wovoka》中。歌曲以放克曲风为主,旋律活泼,曲调悠扬,歌词朗朗上口,深受歌迷喜爱。…

    2023-06-29 07:47:31
    0 61 12
  • css预编译器: center;}

    CSS预编译器是一种用于构建CSS的工具,它可以将CSS代码转换为更易于管理和维护的格式。它们可以使CSS代码更加灵活,更易于重用,并且可以帮助开发人员更轻松地组织和管理CSS代码。…

    2023-04-30 05:19:08
    0 91 36
  • python中predict函数参数:如何使用Python的predict函数进行机器学习预测

    示例示例predict函数是scikit-learn中的一个函数,用于预测新样本的输出结果。参数:…

    2023-03-30 08:03:12
    0 40 95
  • canvas 官网Bring Your Ideas to Life with Creative Artwork

    Canvas 官网是一个用于创建图形的 HTML5 API,它可以在浏览器中使用 JavaScript 来绘制 2D 图形。它提供了一个可以在网页上绘制图形的强大工具,可以用来创建动画、游戏、数据可视化等。…

    2023-02-28 09:52:08
    0 31 52
  • qt creator快速入门 第3版 pdf从零开始

    Qt Creator快速入门第3版是一本关于Qt Creator的教程书,旨在帮助读者快速掌握Qt Creator的使用。书中介绍了Qt Creator的基本功能,如如何创建项目、编辑代码、调试代码以及创建应用程序等等。书中还提供了一些实例代码,帮助读者更好地理解Qt Creator的用法。…

    2023-05-16 03:03:33
    0 48 70
  • cherry键盘win键不能用:解决Cherry键盘Win键无法使用的措施

    如果您的cherry键盘win键不能用,可能是由于系统设置问题导致的。下面提供一些代码,可以帮助您解决这个问题:打开“控制面板”,然后点击“硬件和声音”,打开“键盘”选项卡。…

    2023-08-27 03:36:33
    0 28 86
  • certificate意思一步一步指南

    示例示例是一种用于证明某个人或机构拥有某种资格或资质的文件。它可以是一种认证,也可以是一种奖励或认可。代码示例:…

    2023-09-14 15:01:58
    0 63 15
  • win10系统ctrl加c不能复制:解决win10系统下Ctrl+C不能复制的问题

    解决方案解决方案答:可能是由于系统快捷键被修改所导致的,可以尝试恢复系统默认快捷键;…

    2023-04-15 00:45:32
    0 77 52

发表评论

登录 后才能评论

评论列表(5条)