Iphone UITableView:可以通过点击手势检测单元格选择,但不能通过didSelectRowAtIndexPath检测

Iphone UITableView:可以通过点击手势检测单元格选择,但不能通过didSelectRowAtIndexPath检测,iphone,ios,objective-c,xcode,ipad,Iphone,Ios,Objective C,Xcode,Ipad,我有一个UITableView嵌入在一个文件中。我可以看到整个视图并选择单元格,但底部的单元格除外。按最下面一行不会导致调用DidSelectRowatineXpath。我尝试在视图中添加一个UITapGestureRecognitor来截取触摸,并用下面的代码计算相应的单元格,结果发现它可以工作。我试图理解为什么即使表格视图正在接收触摸事件,也没有调用didSelectRowAtIndexPath CGPoint touchLocation = [sender locationInView:s

我有一个UITableView嵌入在一个文件中。我可以看到整个视图并选择单元格,但底部的单元格除外。按最下面一行不会导致调用DidSelectRowatineXpath。我尝试在视图中添加一个UITapGestureRecognitor来截取触摸,并用下面的代码计算相应的单元格,结果发现它可以工作。我试图理解为什么即使表格视图正在接收触摸事件,也没有调用didSelectRowAtIndexPath

CGPoint touchLocation = [sender locationInView:self.tableView];
NSIndexPath *tappedIndexPath = [self.tableView indexPathForRowAtPoint:touchLocation];
NSInteger row = [tappedIndexPath row];

如果您有任何想法,我们将不胜感激。

扔掉UITapgestureRecognitor,您不需要它。我猜也是这样

1) 您的WEPOVER比UITableView小。将Wepover上的clipsToBounds属性设置为YES,然后查看是否仍然存在此问题。您还可以再次检查UITableView框架和wepover框架的高度,确保它们相同

2) 您有一些透明的视图覆盖底部单元格。检查视图层次结构,将透明视图的颜色设置为类似[UIColor REDCLOR]的颜色,并确保UITableView顶部没有任何颜色


可以触摸底部单元格并滚动吗?

手势识别器是一项测试,用于确定表格视图的可视部分是否对触摸做出响应。你的两个条件中的一个在这种情况下成立。否,触按滚动不适用于底部。这就像tableview正在获取该部分的触摸(手势识别器),但没有将它们转换为UITableView事件。我怀疑WEPopver会添加一个透明视图来捕获所有触摸,并在触摸外部时关闭。您是否在表格视图(不是其父视图)上添加了手势识别器?另外,当您点击表视图的可见部分时,WEPopover不是被忽略了吗?