如何找出在集合视图单元格中点击了哪个集合视图单元格

How to find out which collection view cell is tapped inside collection view cell

我有一个 table 视图,其中有一个集合视图。我想找出哪个集合视图单元格被点击以及相应 table 视图单元格的 indexpath.row。(现在我能够从 didSelectRowAtIndexPath() 获得集合视图单元格的 indexpath.row但无法找到 table 视图单元格对应的单元格。)

先更正一些。

集合视图委托方法是didSelectItemAt不是 didSelectRowAtIndexPath()。另外,由于您使用的是集合视图,因此使用 indexPath.item 而不是 indexPath.row 获取项目编号(您可以使用 row 但集合视图没有行,它有项目集合。所以使用 item 很直观)

现在,对于您的查询,您可以在 table 视图

cellForRowAtIndexPath: 中添加 cell.tag = indexPath.row

现在在您的集合视图委托方法中 collectionView(_:didSelectItemAt:) : 您可以使用 self.tag 来了解您的集合视图位于哪个 table 视图单元格中。

试试下面的代码,让我知道它是否适合你:

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{

    UICollectionViewCell *cell = [collectionView cellForItemAtIndexPath:indexPath];
    CGRect frame = [collectionView convertRect:cell.frame toView:tblView];
    NSIndexPath *tblIndexPath = [tblView indexPathForRowAtPoint:frame.origin];
}