Время между прикосновением началось, и прикосновение закончилось - PullRequest
3 голосов
/ 20 августа 2009

Есть ли в target-c какой-либо метод для определения времени между началом касания и окончанием касания?

Ответы [ 3 ]

19 голосов
/ 25 августа 2009
// add this ivar to your view controller
NSTimeInterval lastTouch;

 // assign the time interval in touchesBegan:
 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
 {
     lastTouch = [event timestamp];
 }  


 // calculate and print interval in touchesEnded:
 -(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
{
    NSTimeInterval touchBeginEndInterval = [event timestamp] - lastTouch;

    NSLog(@"touchBeginEndInterval %f", touchBeginEndInterval);
}   
2 голосов
/ 20 августа 2009

У каждого UITouch есть своя отметка времени / даты. Сравните те, которые вас интересуют. Посмотрите на класс UIResponder ref.

В сторону - ТАК нужно обновить свой код или выпустить приложение для iPhone. Вводить текстовые поля с iPhone с помощью javascriptoided почти смешно.

0 голосов
/ 20 августа 2009

В вашем методе touchesBegan:withEvent: создайте объект NSDate и сохраните его в переменной экземпляра. (В целях без отладки создайте одну дату для каждого касания и используйте CFMutableDictionary, чтобы связать дату с касанием.) Затем в touchesEnded:withEvent: извлеките сохраненную дату и создайте новую дату, а затем отправьте последнему сообщение timeIntervalSinceDate: вычесть из нее более старую дату и получить результат в секундах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...