如何找出在集合视图单元格中点击了哪个集合视图单元格
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];
}
我有一个 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];
}