在我的应用程序中,如果用户点击 tableviewcell,则会显示一个包含不同元素的表格,一个 detailview 会被推送到导航堆栈上。我现在想为用户提供在 tableviewcell 上“长按”的能力,以便弹出一个警报视图,向用户显示可以应用于所述 tableviewcell 的不同选项(将信息发送给朋友,打印出来,添加到书签ETC)
如何在 UITableViewCell 上实现“长按”手势识别器?
感谢您的帮助
在我的应用程序中,如果用户点击 tableviewcell,则会显示一个包含不同元素的表格,一个 detailview 会被推送到导航堆栈上。我现在想为用户提供在 tableviewcell 上“长按”的能力,以便弹出一个警报视图,向用户显示可以应用于所述 tableviewcell 的不同选项(将信息发送给朋友,打印出来,添加到书签ETC)
如何在 UITableViewCell 上实现“长按”手势识别器?
感谢您的帮助
你看过 UILongPressGestureRecognizer 吗?请参阅:http: //developer.apple.com/library/ios/#documentation/uikit/reference/UILongPressGestureRecognizer_Class/Reference/Reference.html%23//apple_ref/occ/cl/UILongPressGestureRecognizer
不过,您可能需要考虑在 Twitter 应用程序中看到的滑动手势:我不认为长按表格单元格会非常直观地使用或用户期望。只是我的2美分。
在触地时,您将使用计时器在 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;
}