События Time Touch в iPhone SDK

Мне интересно, как я буду измерять время между касаниями внутри представления в iPhone SDK. Я знаю, что первым сработавшим событием является touchesBegan: а затем последним сработавшим событием является touchesEnded:, однако я просто не знаю, как мне измерить время, в течение которого пользователь коснулся представления. Например, если они удерживают свой искатель в поле зрения в течение 2 секунд, он автоматически запускает функцию twoSeconds: или что-то в этом роде.

Спасибо за любую помощь!


person PF1    schedule 28.08.2009    source источник


Ответы (1)


Используйте [NSDate date], чтобы получить текущую дату и время. Сохраните его в touchesBegan: и получите продолжительность в touchesEnded:, как это

NSTimeInterval duration = [[NSDate date] timeIntervalSinceDate:beganDate];

Теперь у вас будет продолжительность между событиями, измеренная в секундах в length.

person PeyloW    schedule 28.08.2009
comment
Привет PeyloW: Спасибо за ваш ответ. Это звучит как отличный способ измерить время. Однако, в дополнение к этому, был бы какой-то способ автоматически выполнить задачу, если пользователь касался внутри представления в течение определенного периода времени, не требуя, чтобы он отпускал свой искатель. - person PF1; 30.08.2009
comment
Вы можете вызвать executeSelector:withObject:afterDelay: в touchesBegan:, а затем выполнить команду cancelPreviousPerformRequestWithTarget: в touchesEnded:. - person PeyloW; 30.08.2009