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