如何在UITableViewCell上检测“长按”手势

时间:2011-01-18 16:27:43

标签: iphone uitableview uigesturerecognizer

在我的应用中,我正在显示一个包含不同元素的表,如果用户点击tableviewcell,则会将详细视图推送到导航堆栈。 我现在想要在桌面单元上为用户提供“长按”的能力,以便弹出警报视图,向用户显示可以应用于所述tableviewcell的不同选项(向朋友发送电子邮件信息,打印出来,添加到书签)等)

如何在UITableViewCell上实现“长按”手势识别器?

感谢您的帮助

2 个答案:

答案 0 :(得分:7)

你看过UILongPressGestureRecognizer吗? 请参阅:http://developer.apple.com/library/ios/#documentation/uikit/reference/UILongPressGestureRecognizer_Class/Reference/Reference.html%23//apple_ref/occ/cl/UILongPressGestureRecognizer

您可能想要考虑在Twitter应用中看到的滑动手势,但是:我不认为长时间点击表格单元格会非常直观地使用或预期用户。我的2美分。

  • 约翰内斯

答案 1 :(得分:3)

在触地时你会使用一个计时器在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;
}
相关问题