gpt4 book ai didi

ios - TableView 单元格中的 UIGestureRecognizer 获取 indexPath 始终返回最后一个单元格的 indexPath

转载 作者:行者123 更新时间:2023-11-29 03:14:49 29 4
gpt4 key购买 nike

我在 UITaleViewCell 中有一个 UIImageView,我向 UIImageView 添加了一个点击识别器。

- (IBAction)ui_tapped:(UITapGestureRecognizer *)sender {
NSIndexPath *indexPath = [CocoaHelper indexPathWithTableView:self.tableView sender:sender.view];

RichMediaViewController *viewController = (RichMediaViewController *)[CocoaHelper viewControllerWithIdentifier:VC_RICH_MEDIA];
Message *message = self.messages[indexPath.row];
[viewController setupWithEntity:message];
[self presentViewController:viewController animated:YES completion:nil];


}

+ (NSIndexPath *)indexPathWithTableView:(UITableView *)tableView sender:(id)sender {

CGPoint hitPoint = [sender convertPoint:CGPointZero toView:tableView];
NSIndexPath *hitIndex = [tableView indexPathForRowAtPoint:hitPoint];
return hitIndex;

}

我使用了 + (NSIndexPath *)indexPathWithTableView:(UITableView *)tableView sender:(id)sender对于单元格内的按钮,它是正确的,但对于手势,它总是返回最后一个索引路径的单元格。

enter image description here

enter image description here

编辑

对敲击识别器进行硬编码

if ([message.type isEqualToString:@"image"]) {
UIImageView *view = ((ImageMessageCell *)cell).imageView;
UITapGestureRecognizer *tapRec = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(ui_tapped:)];
[view setGestureRecognizers:[NSArray arrayWithObject:tapRec]];
}

这是非常乏味的编码(因为我需要检查每种类型的单元格,包括图像、视频和其他富媒体),如果您知道如何从 Storyboard添加它,请发布您的答案

最佳答案

事实证明,它无法将手势识别器分别添加到每个实例化的原型(prototype)单元格中,即从同一原型(prototype)单元格实例化的所有单元格只能使用一个手势识别器。

通过使用带有背景 ImageView 的 UIButton 而不是使用 ImageView 解决了这个问题。

[self.imageButton setBackgroundImage:[UIImage imageNamed:LOADING_IMAGE_FILE] forState:UIControlStateNormal];
NSData *blob = post.thumbnailBlob;
if (blob) {
[self.imageButton setBackgroundImage:[UIImage imageWithData:blob] forState:UIControlStateNormal];
}

关于ios - TableView 单元格中的 UIGestureRecognizer 获取 indexPath 始终返回最后一个单元格的 indexPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21807574/

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