从 Tap Gesture 中获取特定的集合视图单元格
Posted
技术标签:
【中文标题】从 Tap Gesture 中获取特定的集合视图单元格【英文标题】:Grab specific Collection View Cell from Tap Gesture 【发布时间】:2012-12-29 01:59:45 【问题描述】:我有一个 UICollectionView 显示图像缩略图。网格中的每个图像视图都有一个点击手势。我的问题是,我怎样才能抓住被窃听的确切单元格?例如。 “点击索引 #43”。
附加评论
点击手势是以编程方式创建的,未使用情节提要。 我在这个项目中启用了 ARC 和 Story Board。这是我最近的一次:
UICollectionViewController
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView
cellForItemAtIndexPath:(NSIndexPath *)indexPath
int row = [indexPath row];
CollectionViewCell *Cell = [collectionView
dequeueReusableCellWithReuseIdentifier:@"Cell"
forIndexPath:indexPath];
// Enable tap gesture on each ImageView
[Cell.ImageView setUserInteractionEnabled:YES];
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapGesture)];
[tapGesture setNumberOfTouchesRequired:1];
[tapGesture setNumberOfTapsRequired:1];
[tapGesture setDelegate:self];
[Cell.ImageView addGestureRecognizer:tapGesture];
Cell.ImageView.tag = row; // This tags correctly
- (void)tapShowImage // Also, for some reason,
// - (void)handleTapGesture:(UITapGestureRecognizer *)sender
// doesn't work. I get an invalid selector error.
NSLog(@"%i", Cell.ImageView.tag);
// Doesn't work because I can't call Cell.ImageView.tag here.
// Might be because I"m using SDWebImage to load the image
// into the ImageView above but not sure.
【问题讨论】:
可能已经晚了,你可能已经想通了。但是在UITapGestureRecognizer
的初始化中,选择器应该是handleTapGesture:
,而不仅仅是handleTapGesture
。注意:
的使用。这是为了表明你在方法声明中有一个参数,即sender
。
【参考方案1】:
您无需为每个单元格添加点击识别器。您可以在 collectionView:didSelectItemAtIndexPath: 方法中获取被点击单元格的 indexPath。
【讨论】:
但是如果他想获得其他类型的手势,比如长按、双击等等呢?? @giuseppe,这不是问题所在。如果他想这样做,他必须将其中一种类型的识别器添加到单元格中。以上是关于从 Tap Gesture 中获取特定的集合视图单元格的主要内容,如果未能解决你的问题,请参考以下文章
IB Tap Gesture Recognizer 总是从 Outlet Collection 返回第一个视图
Swiftui 如何在 foreach 循环中对整行使用 Tap Gesture
PanGesture 和 Tap Gesture 之间的冲突
如何在 Xamarin.Forms 中使用 Tap Gesture 调用另一个页面?
当 UITextField 位于 UIScrollView 内时,使用 Tap Gesture 关闭键盘的问题。
如果它连接的 UIImageView 在 UIScrollView 下,是不是可以让 Tap Gesture Recognizer 工作?