Как я могу обнаружить жест "длинное нажатие" на UITableViewCell - PullRequest
2 голосов
/ 18 января 2011

В моем приложении я отображаю таблицу с различными элементами, если пользователь нажимает на ячейку табличного представления, подробный вид помещается в стек навигации. Теперь я хочу предоставить пользователю возможность «долгого нажатия» на ячейку табличного просмотра, чтобы вывести всплывающее окно с предупреждением, показывающее пользователю различные параметры, которые можно применить к упомянутой ячейке табличного просмотра (отправить информацию другу, распечатать, добавить в закладки и т.д.)

как мне реализовать распознаватель жестов "длинное касание" на UITableViewCell ??

спасибо за вашу помощь

Ответы [ 2 ]

7 голосов
/ 18 января 2011

Вы смотрели на UILongPressGestureRecognizer? Смотри: http://developer.apple.com/library/ios/#documentation/uikit/reference/UILongPressGestureRecognizer_Class/Reference/Reference.html%23//apple_ref/occ/cl/UILongPressGestureRecognizer

Возможно, вы захотите рассмотреть жест смахивания, как показано в приложении Twitter, хотя: я не думаю, что длительное нажатие на ячейку таблицы будет очень интуитивно понятным для использования или ожидаемым пользователем. Просто мои 2 цента.

  • Johannes
3 голосов
/ 18 января 2011

при касании вы бы использовали таймер для запуска вызова метода за X секунд (сколько бы вы ни хотели, чтобы длительное касание было).Затем, если они отпустят до этого времени, вы отмените таймер:

-(void) startSingleTouch:(UITouch*)touch
{
 tapTouch = touch;
 tapTimer = [[NSTimer scheduledTimerWithTimeInterval:tapDelay target:self selector:@selector(singleTapGestureSucceeded) userInfo:nil repeats:NO] retain];
}

-(void) cancelSingleTouch
{
 if(tapTimer)
 {
  [tapTimer invalidate];
  [tapTimer release];
 }

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