为什么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];
}
答案 0 :(得分:0)
想要把它作为一个可能的答案,答案是没有相对直接的方式来达到我所要求的。这是一种在UITableView页面中检测到点按或双击的方法,该页面已经拾取行触摸并向上/向下滚动等。
尚未核实是否是这种情况,但如果他们认为这是真的,那么人们可以对这个答案进行投票。