我能够获得数字皇冠的事件,我想降低速度,因为旋转一个小皇冠会调用多个事件。所以,我希望实现如果在任何方向上旋转大约30度,我将增加或减少该值。我怎么能这样做?
func crownDidRotate(_ crownSequencer: WKCrownSequencer?, rotationalDelta: Double) {
if value > 0 {
myValue = myValue + 1
} else if value < 0 {
myValue = myValue - 1
}
}
答案 0 :(得分:2)
要在watchOS中实现预期效果,您需要管理额外的变量,告诉我们Digital Crown以某个特定角度旋转,例如,
let expectedMoveDelta = 0.523599 //Here, current delta value = 30° Degree, Set delta value according requirement.
var crownRotationalDelta = 0.0
func crownDidRotate(_ crownSequencer: WKCrownSequencer?, rotationalDelta: Double) {
crownRotationalDelta += rotationalDelta
if crownRotationalDelta > expectedMoveDelta { //Crown rotating in clock-wise direction
myValue = myValue + 1
crownRotationalDelta = 0.0
} else if crownRotationalDelta < -expectedMoveDelta { //Crown rotating in anti clock-wise direction
myValue = myValue - 1
crownRotationalDelta = 0.0
}
}