以编程方式访问 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,您可能可以使用WKInterfaceImage
的setImage:
方法来做到这一点。我还没有尝试过,因为这是全新的,但在阅读文档后看起来应该是可能的。您为什么不尝试链接文档中提供的方法,如果您遇到任何代码问题,请发布特定于您的代码的新问题。希望它有所帮助:)
Okey dokey,当我有机会时,我会这样做。感谢您的帮助!以上是关于以编程方式访问 Apple Watch Crown的主要内容,如果未能解决你的问题,请参考以下文章
在 Apple Watch 上以编程方式通知。 (WatchOS 3)
如何以编程方式从 iOS 应用程序打开 Apple Watch 配套应用程序