我有一个 UITableView,其中每个 UITableViewCell 都包含一个 UICollectionView。 UICollectionView 有 UICollectionViewCells。

我的问题是:其中一些 UICollectionViewCells 应该对点击手势使用react,其他人应该将事件转发到 UITableViewCell (因此它会触发该 UITableViewCell 的详细 View 的显示)。

我一直在研究苹果文档和这里的几个问题,但我无法让它工作。

(我认为一般应该可以解决这个问题,但以防万一:每个 UICollectionViewCell 都包含一个 UIImageView。)

非常感谢您的建议。

最佳答案

如果我理解正确,你可以这样做:

  • 在您不想处理事件的单元格上设置 cell.userInteractionEnabled = NO
  • 使用此方法覆盖 hitTest 中的 UICollectionView:
    -(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
    {
        UIView *hitTest = [super hitTest:point withEvent:event];
        return hitTest == self ? nil : hitTest;
    }
    

  • 因此,在启用用户交互的情况下点击单元格外的任何位置,super 返回集合 View ,我们返回 nil ,导致表格 View 单元格处理事件。

    关于ios - 向前点击手势到 UICollectionViewCell 的 super View ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17348025/

    10-10 20:59