Есть ли какой-нибудь способ определить скорость сенсорного движения
-
21-09-2019 - |
Вопрос
Я создаю приложение для рисования и хочу увеличить размер кисти в зависимости от скорости штрихов.
Как бы я этого добился?
Решение
ДА.Смотрите методы на UIView
названный touches*
, в частности:
- (void)touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event
Он вызывается при обнаружении перемещения ("слайд"?) и не страдает от того, что его "обманывают" несколькими быстрыми касаниями.Вы можете получить координату текущего положения пальца в представлении и время, когда произошло событие:
UITouch *touch = [touches anyObject];
CGPoint inFrameCoordinate = [touch locationInView:self];
NSTimeInterval timestamp = [touch timestamp]
Получите расстояние и время между двумя координатами, чтобы вычислить скорость.
Другие советы
Что ж, UITouch ( пользовательский интерфейс ) имеет свойства для определения местоположения и метки времени;используя эти свойства, вы можете рассчитать "скорость" касания между двумя событиями касания.
Конечно, это сработает только для одиночных касаний, и вам, возможно, придется сгладить результаты.Кроме того, пользователь может "обмануть" вас, быстро постукивая двумя пальцами поочередно ;-)