为什么这个touchesBegan方法代码在我的UITableView中得到触发器?

时间:2011-03-25 21:34:27

标签: iphone cocoa-touch ios uitableview touches

为什么touchesBegan方法代码会在我的UITableView中触发?

背景:我在UINavigationController中有一个UITableView。在UITableView中,我有基于子类UITableViewCell的自定义单元格。我目前在我的UITableView中没有selectRowAtIndexPath方法。

有助于弥补的答案的某些方面包括:

  • 为什么它显然不起作用

  • 在使其工作方面,如何确保正确的触摸(单击)检测不会阻止其他方案的工作方式如下:选择表格行,向上滚动tableview内容

  • 模拟器是否能够接收触摸等,或者是否存在需要物理设备的情况

代码:

@interface AppointmentListController : UITableViewController <UIActionSheetDelegate> 
.
.
.

@implementation AppointmentListController
.
.
.

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

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

        if(touchDuration > 0.2)
            [super touchesEnded:touches withEvent:event];
        else
            DLog(@" - TOUCH EVENT OCCURS");

        [super touchesEnded:touches withEvent:event];
    }

1 个答案:

答案 0 :(得分:0)

想要把它作为一个可能的答案,答案是没有相对直接的方式来达到我所要求的。这是一种在UITableView页面中检测到点按或双击的方法,该页面已经拾取行触摸并向上/向下滚动等。

尚未核实是否是这种情况,但如果他们认为这是真的,那么人们可以对这个答案进行投票。