Попробуйте код ниже: здесь startDate - это отметка времени, когда начинается встряхивание.
override func motionBegan(_ motion: UIEvent.EventSubtype, with event: UIEvent?) {
startDate = Date()
print("Motion begins")
}
override func motionEnded(_ motion: UIEvent.EventSubtype, with event: UIEvent?) {
print("Motion ends")
let endDate = Date()
let difference = Calendar.current.dateComponents([.hour, .minute, .second, .nanosecond], from: startDate!, to: endDate)
let formattedString = String(format: "%02ld %02ld %02ld %02ld", difference.hour!, difference.minute!, difference.second!, difference.nanosecond!)
print(formattedString)
}
На выходе будет напечатана разница во времени в часах, минутах, секундах и нано секундах.
Надеюсь, это поможет.