0

什么是编码检测UITableView上的“快速触摸”,以切换到全屏或从全屏切换?如何检测UITableView上的“快速触摸”以切换到全屏或从全屏切换?

特别是,这是因为用户在UITableView上,他们仍然需要能够上/下拖动项目列表,并可能点击单元格/行来深入挖掘。但是,如果它们很快触及,那么这可能是在全屏模式(即导航栏&工具栏)之间切换的触发。

背景 - 当我说切换到/从全屏我指的是执行什么是described here,但在这个答案中没有提及如何将其插入到UITableView的回调中显示在UINavigationController堆栈中。

回答

0

想把了这个作为一个可能的答案,答案是没有相对直接的方式来实现我问过这一点。这是一种在UITableView页面中检测轻拍或双击的方法,该页面已经在拾取行触摸并向上/向下滚动等。

尚未验证是否是这种情况,但是如果他们认为这是真的,人们可以对这个答案进行投票。 (也等待来自ypk的样本谁可能有答案)

1

下面的代码可以帮助你

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    timeStampStart = event.timestamp; 
} 

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    timeStampEnd = event.timestamp; 
    touchDuration = timeStampEnd - timeStampStart; 

    if(touchDuration > smallTimeStamp) 
     [super touchesEnded:touches withEvent:event]; 
    else 
     [self zoomMyTableView]; 
} 
+0

谢谢ypk - 请问这是如何适应在表中正常选择的行,或滚动表,或深入细胞的细节?触摸你突出显示的优先顺序?如果是的话,还有什么需要做的,以确保触摸不是一个很短的,其他情况下仍然会继续好吗?再次感谢 – Greg 2011-03-25 10:32:07

+0

我缺少的另一件事是,你需要在'toucesBegan'中添加'[super touchesBegan:touches withEvent:event];''。你需要在你的'UITableView'子类中实现这些。通过这个静态表视图滚动,选择将起作用,因为当触摸时间戳大于最小值时,我们将触摸事件发送到“超级”。 – YPK 2011-03-25 20:19:18

+0

实际上这对我不起作用 - 我正在使用模拟器进行测试 - 我无法点击tableview中的行上的模拟器并获取任何这些方法来触发?所以我在UINavigationController中有一个UITableView,而表本身是基于子类/自定义的UITableViewCell – Greg 2011-03-25 21:02:44