以编程方式访问 Apple Watch Crown

Posted

技术标签:

【中文标题】以编程方式访问 Apple Watch Crown【英文标题】:Programmatic Access to Apple Watch Crown 【发布时间】:2015-08-25 00:48:24 【问题描述】:

我知道它已经上市不到 48 小时,但我想知道是否有人想出如何在 watchOS 2 中以编程方式访问 Apple Watch 上的数字表冠?是否没有我可以覆盖其实现的 Objective-C 方法,例如-(void)crownMovedWithTimeStamp(float)timeStamp? (我的想法是这个方法可以是 WKInterfaceController 的一个方法,并且会在一个设定的时间间隔被调用(就像每次数字表冠旋转 1 度角时一样))。就像使用 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 等方法在 UIView 中接收触摸一样。任何帮助将不胜感激,谢谢。

【问题讨论】:

【参考方案1】:

看起来在 WatchOS 2 中,Apple 引入了WKInterfacePicker 类。

来自Docs:

用户通过点击选择器与选择器进行交互,使用表冠 滚动浏览项目,然后再次点击以选择项目。

当用户选择一个新值时,WatchKit 会调用选取器的操作方法来报告该新值。 picker 的 action 方法格式如下:

- (IBAction)pickerAction:(NSInteger)index

More Docs : 转动表冠时的动画

协调的界面对象。对于复杂的选择器界面,您可以将选择器链接到一个或多个包含动画图像序列的 WKInterfaceImage 或 WKInterfaceGroup 对象。当用户转动 Digital Crown 以选择下一个选取器项目时,选取器会更新每个协调对象中显示的图像。

【讨论】:

那么,例如,没有 WK 元素就没有当前方法可以使用 Crown 吗? (例如,在图像转动时淡入淡出?) @TristanBarnes :看起来我们可以在旋转表冠时制作动画。在答案中添加了动画的文档链接。 我想我举了一个不好的例子来说明我在寻找什么,哈哈。 (但是,此信息很棒,感谢您在这里分享)。有没有我可以像问题示例中那样重写的任何方法?我希望能够使用 Core Graphics 绘制一个正方形,并将其余空间填充为黑色,然后我将使用 WKInterfaceImage 显示此图像。当表冠转动时,我会通过创建一个新图像来使正方形上下移动。 然而,当用户点击屏幕时,方块会沿 x 轴移动。 (因此,4个预制的imgs会有太多的可能性) @TristanBarnes,您可能可以使用WKInterfaceImagesetImage: 方法来做到这一点。我还没有尝试过,因为这是全新的,但在阅读文档后看起来应该是可能的。您为什么不尝试链接文档中提供的方法,如果您遇到任何代码问题,请发布特定于您的代码的新问题。希望它有所帮助:) Okey dokey,当我有机会时,我会这样做。感谢您的帮助!

以上是关于以编程方式访问 Apple Watch Crown的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式禁用 Apple Watch 的睡眠模式

在 Apple Watch 上以编程方式通知。 (WatchOS 3)

如何以编程方式在 Apple Watch 上撰写电子邮件?

如何以编程方式从 iOS 应用程序打开 Apple Watch 配套应用程序

Apple Watch 应用程序在启动应用程序后以编程方式将视图滚动到顶部

iOS WatchOS5 - 如何以编程方式检测 Apple Watch 是不是在特定时间间隔戴在手腕上(佩戴)?