Есть ли способ определить скорость движения прикосновения? - PullRequest
2 голосов
/ 18 января 2010

Я создаю приложение для рисования и хочу увеличить размер кисти в зависимости от скорости касания.

Как бы мне этого добиться?

Ответы [ 2 ]

4 голосов
/ 18 января 2010

Да. См. Методы на UIView с именем touches*, а именно:

- (void)touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event

Он вызывается при обнаружении движения («слайд»?) И не страдает от «одурачивания» несколькими быстрыми касаниями. Вы можете получить координату текущей позиции пальца на виде и времени, когда произошло событие:

UITouch *touch = [touches anyObject];
CGPoint inFrameCoordinate = [touch locationInView:self];
NSTimeInterval timestamp = [touch timestamp]

Получите расстояние и время между двумя координатами для расчета скорости.

0 голосов
/ 18 января 2010

Ну, UITouch имеет свойства для местоположения и отметки времени; Используя эти свойства, вы можете вычислить «скорость» касания между двумя событиями касания.

Конечно, это будет работать только для одиночных касаний, и вам, возможно, придется сгладить результаты. Кроме того, пользователь может быть в состоянии «одурачить» вас, быстро поочередно постукивая двумя пальцами; -)

...