2017-04-13 26 views
2

Ich kann die Ereignisse für die digitale Krone bekommen und möchte die Geschwindigkeit verringern, da beim Drehen einer kleinen Krone mehrere Ereignisse aufgerufen werden. Also, ich möchte erreichen, wenn es etwa 30 Grad Drehung in irgendeiner Richtung gibt, werde ich den Wert erhöhen oder verringern. Wie kann ich das machen?Inkrementieren/Dekrementieren bei digitaler Kronenrotation

func crownDidRotate(_ crownSequencer: WKCrownSequencer?, rotationalDelta: Double) { 
if value > 0 { 
    myValue = myValue + 1 
} else if value < 0 { 
    myValue = myValue - 1 
} 
} 

Antwort

2

Um erwartetes Ergebnis in watchOS zu erreichen, müssen Sie zusätzliche Variable verwalten, die uns sagen, über Digital Krone bei einem spezifischen Winkel gedreht wie,

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 
    } 
} 
+0

Gut gemacht .... Ich frage mich, ob ich bin Mit einem WKInterfaceTable funktioniert die Krone in diesem Fall nicht richtig. –

Verwandte Themen