UITableViewCell里面的UITableView没有接收到触摸事件

时间:2015-07-27 07:44:30

标签: ios objective-c iphone uitableview uiview

所以我有一个UITableView嵌套在UITableViewCell中,如:

  • UITableView baseTable

    • UITableViewCell baseTableCell0

      • UITableView subTableView
        • UITableViewCell subTableViewCell
      • UIView subView
    • UITableViewCell baseTableCell1

      • UICollectionView subCollectionView
        • UICollectionViewCell subCollectionViewCell

subView连接了一个UITapGestureRecognizer,就像一个按钮 subTableView和subCollectionView应该接收触摸事件并执行didSelectRowAtIndexPath

在iOS 8上运行正常,但是当我在ios 7上测试时,subTableView和subCollectionView中的单元格不再接收触摸事件,触摸事件被发送到[baseTableView tableview ... didSelectRowAtIndexPath]。但是,subView上的UITapGestureRecognizer仍然可以接收触摸事件。

  • 更新:ios 6也存在此问题,因此它仅适用于目前为止的ios 8

2 个答案:

答案 0 :(得分:0)

在标签手势对象

上使用此代码
tap.cancelsTouchesInView = NO;  

答案 1 :(得分:0)

尝试更改UITableView,UITableViewCell和UIView的背景颜色,这样您就可以看到您的子视图是否超出了您的父视图,如果您的子视图不会接收触摸事件。然后调整Parent以完全显示子项或调整子项以保留在父项边界中。

希望它有所帮助!

修改

可能passing touch events to subviews可以提供帮助。