2017-06-20 3 views
0

Ich versuche die genaue Zeit zu bestimmen, die der Benutzer den Bildschirm berührt hat. Ich habe mit diesem (in meinem Viewcontroller) kommen:Ermitteln der genauen Zeit zwischen zwei Berührungen

var startTime: Date? 

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 
    startTime = Date() 
} 

override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) { 
    let endTime = Date() 
    print(endTime.timeIntervalSince(startTime!)) 
} 

scheint ziemlich gut zu funktionieren.
Ist das so präzise wie es geht? Gibt es eine Möglichkeit zu testen, wie genau das ist?

+1

vor allem ist es, Ihnen Titel ein wenig verwirrend. Bitte passen Sie das an! Nun, um es zu testen, versuchst du entweder die Zeit mit etw zu messen. sonst oder Sie benötigen eine zweite Methode, die das gleiche tun würde. Aber wie ich es sehe, wenn Sie die Gesamtzeit von Anfang bis Ende der Berührung messen wollen, sollte dies der beste Weg sein, dies zu tun. Aber anstatt "Date" zu benutzen, was denkst du über den [Timestamp eines UITouch] (https://developer.apple.com/documentation/uikit/uitouch/1618144-timestamp)? –

Antwort

1

Ich würde für die gleiche Struktur gehen, wie Sie es getan haben. Ihr print(endTime.timeIntervalSince(startTime!)) wird einen genauen Double Wert für Sie ausdrucken.

Ich würde es allerdings etwas zwicken, überprüfen Kommentare nach Erklärungen:

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 
    startTime = Date() 
} 

override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) { 
    // Don´t use startTime!, use if let instead 
    if let startTime = startTime { 
     // Use 2 decimals on your difference, or 3, or whatever suits your needs best 
     let difference = String(format: "%.2f", Date().timeIntervalSince(startTime)) 
     print(difference) 
    } 
} 
+0

Ich habe gefunden, dass das gut funktioniert. Zusammen mit dem Kommentar von @Marcel T zur Verwendung des UITouches-Zeitstempels für zusätzliche Genauigkeit. – Marmelador

+0

@Marmelador, großartig! –

Verwandte Themen