我使用locationInView获取触摸点并将其传递给集合视图的indexPathForItemAtPoint。我将得到一个单元格的索引路径,但从来没有UICollectionReusableView(header/footer),因为它总是返回nil。如何在使用轻击手势时获取UICollectionView标题的索引路径?
2
A
回答
1
可能来不及帮助这个,但也许别人会像我一样打这个。问题是头没有有意义的indexPath(它总是返回0,0)。
无论如何,当我得到的点,而不是我检查,看它是否是子视图中的标头中的indexPath:
CGPoint point = [sender locationInView:collectionView];
if (CGRectContainsPoint(CGRectMake(0.0f,0.0f,140.0f,140.0f), point))
NSLog(@"Point was inside header");
此作品在我的情况下,只是因为我知道大小并且可以安全地假定它在collectionview中的位置,因为collectionView只有一个部分(0)。
HTH
1
我会创建并附加UITapGestureRecognizer
到每个标题视图。另一种选择是为每个标题视图提供UIControl
的自定义子类。
7
头部并没有真正的indexPath;它报告为第0行,但该部分中的第一个单元格也是如此。
您可以通过UITapGestureRecognizer的简单子类,具有整数属性轻松解决这个问题,只要把下面的接口和空的实现在视图控制器的.m
文件的顶部:
@interface HeaderTapRecognizer : UITapGestureRecognizer
@property (nonatomic, assign) NSInteger sectionNumber;
@end
@implementation HeaderTapRecognizer
@end
当你提供补充视图,只需添加这些识别器之一,并设置部分号码:
HeaderTapRecognizer *recognizer = [[HeaderTapRecognizer alloc] initWithTarget:self action:@selector(headerTapped:)];
recognizer.sectionNumber = indexPath.section;
[cell addGestureRecognizer:recognizer];
现在你可以在行动块存取款号:
- (void)headerTapped:(id)sender
{
HeaderTapRecognizer *htr = sender;
NSInteger sectionNumber = htr.sectionNumber;
NSLog(@"Header tapped for index Section %d",sectionNumber);
}
+0
我完全不理解这一点。无论如何,你在哪里获得indexPath? – p0lAris 2015-06-06 19:19:54
相关问题
- 1. 获取标签或索引的轻击手势识别器
- 2. 如何获取UICollectionView标头的索引路径?
- 3. 如何从UICollectionView中的索引路径正确获取索引?
- 4. 在滑动手势上获取单元格索引路径UITableView
- 5. UIPopoverPresentationController不会在标题视图上禁用轻击手势
- 6. 获取UiTableView标头的索引路径?
- 7. tvOS UICollectionView获取当前焦点物品的索引路径
- 8. iOS - 忽略轻击手势
- 9. 如何选择轻击手势而不是画手势?
- 10. 如何使用jq获取找到的值的索引路径?
- 11. UICollectionView手势事件
- 12. 如何手动获取获取(...)索引
- 13. 如何获取请求引用路径?
- 14. 如何通过用户轻敲手势获取标签的标签在目标c中
- 15. 平移手势 - 轻扫手势冲突
- 16. 轻扫手势iphone
- 17. UIImageView标记和点击手势问题
- 18. 使UIControl只接受滑动手势并传递触摸/轻击手势
- 19. XCode中的“标题搜索路径”与“用户标题搜索路径”?
- 20. 如何在Adobe AIR for iOS中同时侦听轻击和手势操作?
- 21. 获取线程1:试图使用轻击手势识别器打开url时的信号sigabrt
- 22. 如何使Xcode使用“用户标题搜索路径”正确查找标题?
- 23. 如何使用子路径获取资源路径使用NSBundle
- 24. 如何通过轻扫手势
- 25. UIView获取点击和轻扫手势,但将其设置为忽略捏缩放手势
- 26. 如何在使用Ninject绑定时获取dll的路径?
- 27. 如何在xcode 3.2中找到搜索路径\标题搜索路径设置
- 28. 如何获取特定内容偏移量的UICollectionView中的单元格的索引路径?
- 29. 与UIGestureRecognizer同时触摸和轻击手势识别
- 30. 如何从索引路径获取单元格值? - IOS
我已经完成了轻拍手势识别器,但在集合视图中使用单个实例,而不是每个头的一个,因为这样效率更高。我真的只是在寻找如何基于一个点来获取标题的索引路径。 – akaru 2013-02-17 18:02:04
我不认为有多个水龙头识别器会成为一个问题,但在这种情况下,您可以使用自定义标题视图...如果您的问题真的是“如何获得标题视图中的水龙头的索引路径一个集合视图“你应该问:) – nielsbot 2013-02-18 06:55:08
我问这种方式给更多的上下文,以防在使用轻击手势时indexPathForItemAtPoint中存在一些错误或问题。是的,真正的问题可能是“如何获得集合视图中标题视图上的点击索引路径?”。 – akaru 2013-02-18 17:09:04