Ios UITap手势未到达UICollectionView(集合视图是TableViewCell的子视图)

Ios UITap手势未到达UICollectionView(集合视图是TableViewCell的子视图),ios,objective-c,uitableview,uicollectionview,Ios,Objective C,Uitableview,Uicollectionview,我有一个UITableViewCell->contentView,其中包含一个带有水平流布局的UICollectionView TableViewCell是UICollectionView的委托和数据源 所有平移行为都按预期工作。向上/向下平移将滚动表格视图。在表格单元格上向左/向右平移将滚动UICollectionView 但是,在表格单元格上点击不会传递到UICollectionView 我之所以知道这一点,是因为: - (BOOL)collectionView:(UICollectionV

我有一个UITableViewCell->contentView,其中包含一个带有水平流布局的UICollectionView

TableViewCell是UICollectionView的委托和数据源

所有平移行为都按预期工作。向上/向下平移将滚动表格视图。在表格单元格上向左/向右平移将滚动UICollectionView

但是,在表格单元格上点击不会传递到UICollectionView

我之所以知道这一点,是因为:

- (BOOL)collectionView:(UICollectionView *)collectionView shouldSelectItemAtIndexPath:(NSIndexPath *)indexPath {}
从来没有人打过电话

我尝试手动调整UITableView手势识别器的代理,如下所示:

- (void)viewWillAppear:(BOOL)animated {

    // connect our gesture handlers so we stop the tableView from grabbing taps
    for (UIGestureRecognizer* gr in playerTable.gestureRecognizers) {
        if (![gr isKindOfClass:[UIPanGestureRecognizer class]]) {
            [gr setDelegate:self];
        }
    }
}

#pragma GestureRecognizer delegate
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
    return NO;
}
但这也不起作用

什么是确保将点击手势传递到UICollectionView并因此可以“选择”单元格的最佳方法


PS.我确实查看了各种类似的票据,但找不到适用的解决方案。绝对不会怀疑它已经在这里了。。。只是没有看到它。

您不应该将UITableViewCell设置为委托,而应该设置承载UITableView的任何视图控制器。这是一个很好的教程

这是一个面子问题。。。还有一个手势识别器在所有其他的东西上面抓住水龙头。如果没有此选项,工作正常。

您的表视图是否调用委托方法shouldHighlightRowatineXpath:?在这种情况下,可能是您的问题,表视图得到了触摸。这里的问题是嵌套的滚动视图,这有时可能会很复杂。我将回到我的思考洞穴进行进一步的思考。我实际上还没有连接代表,但我可以看到。我想,如果我不是为了突出显示而进行补漏白或选择,它就会通过。让我知道你的洞穴是什么样子的我真的看过那个教程。我看到了他说的“非常非常糟糕”的地方,但没有看到解释原因的地方。您能否解释一下这种情况有什么不好的地方,因为UITableViewCell的关注点不是将数据填充到集合视图中,所以它似乎工作得很好(触摸问题除外)。它不干净。到目前为止,你只发现了手势问题,但如果你继续玩它,你会发现其他意想不到的行为。嗯,我可以看到,但仍然不能确定我是否相信。tap问题完全无关,是我的错,不是结构性问题。TableCell关注的是将数据填充到该表单元格中,如果该单元格包含集合视图,那么它也应该处理该视图,不是吗?我认为,在这种设置中,代码局部性比使用顶级控制器作为嵌入式集合视图的数据源要好得多。