4

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

我的问题是:其中一些 UICollectionViewCell 应该对点击手势做出反应,其他应该将事件转发到 UITableViewCell(因此它会触发显示该 UITableViewCell 的详细视图)。

我一直在研究苹果文档和几个问题,但我无法让它发挥作用。

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

非常感谢您的建议。

4

2 回答 2

1

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

  1. cell.userInteractionEnabled = NO在您不想处理事件的单元格上设置。
  2. 用这个方法覆盖hitTest你:UICollectionView

    -(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
    {
        UIView *hitTest = [super hitTest:point withEvent:event];
        return hitTest == self ? nil : hitTest;
    }
    

因此,在启用了用户交互的单元格之外点击任何位置,super返回集合视图,然后我们返回nil,导致表格视图单元格处理事件。

于 2013-06-28T03:40:00.333 回答
0

为什么不只让 uicollectionview 单元处理点击,然后在回调中确定要采取的操作。对于某些人,您可以在点击单元格时执行您现在所做的事情,对于其他人,您可以随心所欲。

于 2013-06-27T16:09:30.013 回答