因此,从 watchOS 3.0 开始,您现在可以获得数字表冠的旋转。我设法使用了crownDidRotate InterfaceController 中的函数。
但我无法从 SKScene 类中旋转表冠。
有人可以帮我解决这个问题吗?我现在很迷茫?
谢谢。
最佳答案
得到那些crownDidRotate
在你的接口(interface) Controller 中调用,你必须采用 WKCrownDelegate
接口(interface) Controller 中的协议(protocol),并将您的接口(interface) Controller 设置为 delegate
其crownSequencer
.
获取 crownDidRotate
调用其他类,采用 WKCrownDelegate
该类中的协议(protocol),并将该类的实例设置为 delegate
您的接口(interface) Controller 的crownSequencer
.
大概你已经有一些这样的代码来设置你的 SpriteKit 场景:
class InterfaceController: WKInterfaceController {
@IBOutlet var spriteGizmo: WKInterfaceSKScene!
override func awake(withContext context: AnyObject?) {
super.awake(withContext: context)
let scene = MyScene(fileNamed: "MyScene")
spriteGizmo.presentScene(MyScene(fileNamed: "MyScene"))
}
}
如果您已声明
WKCrownDelegate
符合您的MyScene
类,只需添加一行将其设置为接口(interface) Controller 的冠序列器的委托(delegate):let scene = MyScene(fileNamed: "MyScene")
spriteGizmo.presentScene(MyScene(fileNamed: "MyScene"))
crownSequencer.delegate = scene
(或者,您可以在 Storyboard 中设置
WKInterfaceSKScene
的场景。在这种情况下,您仍然可以使用 WKInterfaceSKScene
从界面 Controller 引用 IBOutlet
。然后在 awake(withContext:)
中,您可以访问场景通过该导出并将其设置为皇冠代表。)
关于sprite-kit - watchOS 3.0 在 SpriteKit 中检测表冠旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37815563/