Во-первых, поймите, что это проблема «измерения». Чтобы решить эту проблему, выделите минимальные атрибуты, необходимые для решения проблемы, и выведите остальные.
Расстояние перемещения и время, необходимое для перемещения расстояния, являются производными атрибутами каждого измерения, в этом случае измерение называется «проведением». В гоночной аналогии измерение называется кругом.
«Скорость» теперь может быть рассчитана. Это будет «скорость», то есть просто расстояние / время.
Значение distance
может быть рассчитано с учетом начальной и конечной точек свайпа.
Чтобы получить значение времени, создайте startTime
экземпляр NSDate
в touchesBegan:withEvents:
и в touchesEnded:withEvents:
вычислите elapsedTimeInterval
, используя [startTime timeIntervalSinceNow];
В зависимости от ваших потребностей, вам может понадобиться класс Measurement
со свойствами для startPosition, endPosition, startTime и endTime, чтобы вы могли отслеживать «самую высокую» скорость и т. Д.
Взгляните на Аналитические паттерны от Martin Fowler . Я нахожу это очень полезным при попытке сопоставить проблемы домена с программными решениями.