【发布时间】:2014-02-16 05:08:25
【问题描述】:
我在 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 发件人:(id)sender 对于单元格内的按钮,它是正确的,但对于手势,它总是返回最后一个索引路径的单元格。
编辑
对点击识别器进行硬编码
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]];
}
这是非常繁琐的编码(因为我需要检查每种类型的单元格,包括图像、视频和其他富媒体),如果您知道如何从情节提要中添加,请发布您的答案
【问题讨论】:
标签: ios cocoa-touch uitableview uigesturerecognizer