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

时间:2013-04-24 18:35:51

标签: iphone ios objective-c xcode ipad

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

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

任何想法都会受到赞赏。

1 个答案:

答案 0 :(得分:-1)

摆脱UITapGestureRecognizer,你不需要它。我的猜测是

1)您的WEPopover小于您的UITableView。将WEPopover上的clipsToBounds属性设置为YES,看看是否仍有此问题。您还可以仔细检查UITableView框架和WEPopover框架的高度,并确保它们是相同的。

2)你有一些覆盖底部细胞的透明视图。检查您的视图层次结构并将透明视图的颜色设置为[UIColor redColor],并确保UITableView上没有任何内容。

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