我尝试了以下针对iOS 10.0/Watch OS3.0和iOS 11.0/Watch OS4.0的代码,并在模拟器和我的Watch OS 4设备上进行了测试。似乎没有什么会触发crownDidRotate委托方法。
简单的接口,有一个标签连接到插座。我知道它是连接的,因为我更改了awake方法中的文本。当我旋转皇冠时,在委托方法中中断永不停止。
有什么想法吗?
import Foundation
import WatchKit
class InterfaceController: WKInterfaceController, WKCrownDelegate {
var value = 1
@IBOutlet var label: WKInterfaceLabel!
override func awake(withContext context: Any?) {
super.awake(withContext: context)
label.setText("Yeah?")
crownSequencer.delegate = self
crownSequencer.focus()
}
func crownDidRotate(_ crownSequencer: WKCrownSequencer?, rotationalDelta: Double) {
label.setText("Rotational: \(rotationalDelta)")
}
}发布于 2017-09-24 23:08:17
我也有过同样的经历。作为一个黑客,我在crownSequencer.focus()中添加了对willActivate()的另一个调用,现在我看到了一些事件。(xcode 9.0 gm,ios 11.0 gm,watchos 4.0 gm)
发布于 2019-01-05 16:06:14
在crownSequencer.focus()中添加willActivate()对我在Xcode10中没有帮助。您不必在willActivate()或willActivate()中调用(),而是在didAppear()中调用。因此,您需要添加以下几行:
override func didAppear() {
super.didAppear()
crownSequencer.focus()
}https://stackoverflow.com/questions/46249328
复制相似问题