2

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

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

感谢您的帮助

4

2 回答 2

7

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

不过,您可能需要考虑在 Twitter 应用程序中看到的滑动手势:我不认为长按表格单元格会非常直观地使用或用户期望。只是我的2美分。

  • 约翰内斯
于 2011-01-18T16:32:31.260 回答
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;
}
于 2011-01-18T16:33:44.607 回答