Обнаружение удержания на объекте - iPhone Objective C - PullRequest
0 голосов
/ 30 октября 2010

Как я могу определить, удерживает ли пользователь палец на экранном объекте в течение 1 секунды?

Спасибо,

Martin

Ответы [ 2 ]

1 голос
/ 30 октября 2010

Вам нужна как минимум одна переменная состояния и таймер.

При касании внутри внутри целевой области установите переменную состояния с текущим временем и запустите 1-секундный таймер. При любом касании перемещаться за пределы целевой области или события касания очистите переменную состояния. После того, как таймер на 1 секунду отключился, проверьте переменную состояния. Если он все еще имеет время от 1 секунды назад или более (и, таким образом, не был очищен или изменен), то касание находилось на цели не менее 1 секунды.

1 голос
/ 30 октября 2010

Посмотрите на свойство метки времени класса UITouch

timestamp Время, когда касание произошло или когда он был последний мутировал. (Только для чтения)

@ свойство (неатомное, только для чтения) NSTimeInterval отметка времени Обсуждение Значение этого свойства время в секундах с момента запуска системы касание возникло или было последний изменился. Вы можете хранить и сравнить начальное значение этого атрибут для последующей отметки времени значения экземпляра UITouch в определить продолжительность касания и, если его сильно ударить, скорость движения. Для определения время с момента загрузки, см. описание метода systemUptime класса NSProcessInfo.

Вы должны использовать его с

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;

в классах UIResponder или UIGestureRecognizer в соответствии с вашей целевой ОС

...