我有一个UITableViewCell-> contentView,它包含一个带有HorizontalFlowLayout的UICollectionView。
TableViewCell是UICollectionView的委托和数据源。
所有平移行为都按预期工作。向上/向下平移将滚动表格视图。在表格单元格上向左/向右平移将滚动UICollectionView。
但是,表格单元格上的 TAPPING 不会传递给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;
}
但这也不起作用。
确保将TapGesture传递给UICollectionView并因此我可以“选择”一个单元格的最佳方法是什么?
PS。我确实看了各种类似的门票,但找不到适用的解决方案。绝对不会怀疑它已经在这里......只是没有看到它。
答案 0 :(得分:0)
您不应将UITableViewCell设置为委托,而是设置托管UITableView的任何视图控制器。 This是一个很棒的教程。
答案 1 :(得分:0)
这是一个面部手掌问题......在抓住水龙头的其他所有东西之上有另一个手势识别器。如果没有那个就能完美地运作。