gpt4 book ai didi

ios - 使用点击手势时如何获取 UICollectionView header 的索引路径?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:59:25 28 4
gpt4 key购买 nike

我使用 locationInView 获取接触点并将其传递给 Collection View 的 indexPathForItemAtPoint。我会得到单元格的索引路径,但永远不会是 UICollectionReusableView(页眉/页脚),因为它总是返回 nil。

最佳答案

header 并没有真正的 indexPath;它报告为第 0 行,但该部分中的第一个单元格也是如此。

您可以通过制作一个具有 Integer 属性的 UITapGestureRecognizer 的简单子(monad)类轻松解决这个问题,只需将以下接口(interface)和空实现放在 View Controller 的 .m 文件的顶部:

@interface HeaderTapRecognizer : UITapGestureRecognizer
@property (nonatomic, assign) NSInteger sectionNumber;
@end

@implementation HeaderTapRecognizer
@end

当您提供补充 View 时,只需添加这些识别器之一并设置节号:

HeaderTapRecognizer *recognizer = [[HeaderTapRecognizer alloc] initWithTarget:self action:@selector(headerTapped:)];
recognizer.sectionNumber = indexPath.section;
[cell addGestureRecognizer:recognizer];

现在您可以访问操作 block 中的节号:

- (void)headerTapped:(id)sender
{
HeaderTapRecognizer *htr = sender;
NSInteger sectionNumber = htr.sectionNumber;
NSLog(@"Header tapped for index Section %d",sectionNumber);
}

关于ios - 使用点击手势时如何获取 UICollectionView header 的索引路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14918720/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com