UITableViewCell 块中带有手势识别器的 UILabel didSelectRowAtIndexPath
Posted
技术标签:
【中文标题】UITableViewCell 块中带有手势识别器的 UILabel didSelectRowAtIndexPath【英文标题】:UILabel with Gesture Recognizer inside UITableViewCell blocks didSelectRowAtIndexPath 【发布时间】:2014-10-15 21:53:52 【问题描述】:我在UITableViewCell
中使用了一些带有UITapGestureRecognizer
的UILabel。 GestureRecognizer 运行良好。但是当我点击标签时,我希望didSelectRowAtIndexPath:
也应该执行。或者甚至只是 indexPathForSelectedRow()
方法应该给我选择的行。
设置cancelsTouchesInView = false
无效!
这可能吗?现在 indexPathForSelectedRow()
方法返回 nil。
谢谢
【问题讨论】:
【参考方案1】:您为什么使用UITapGestureRecognizer
?如果要使用它,请尝试将标签的标签设置为label.tag=indexpath.row
。所以你可能会得到你正在寻找的价值。关于我自己的意见,我会删除 uitapgesturerecognizer
并直接使用 didselectrowatindexpath
方法..
编辑 2:
尝试使用此解决方案..它可能会对您有所帮助..
-(void)handleTap:(UITapGestureRecognizer *)sender
CGPoint location = [sender locationInView:self.view];
if (CGRectContainsPoint([self.view convertRect:self.yourTableView.frame fromView:self.tableView.superview], location))
CGPoint locationInTableview = [self.yourTableView convertPoint:location fromView:self.view];
NSIndexPath *indexPath = [self.yourTableView indexPathForRowAtPoint:locationInTableview];
if (indexPath)
[self tableView:self.yourTableView didSelectRowAtIndexPath:indexPath];
return;
【讨论】:
我使用了多个标签 你打算用 UITapGestureRecognizer 做什么?? 我有三个标签,当我点击它们时,它们会将不同的值存储到数组中,我需要选择的行作为数组索引 @MiteshTrivedi 感谢您提供此解决方案。我试图让一个点击手势在 tableviewCell 中工作,我偶然发现了你的帖子。感谢您分享您的见解!以上是关于UITableViewCell 块中带有手势识别器的 UILabel didSelectRowAtIndexPath的主要内容,如果未能解决你的问题,请参考以下文章
UITableViewCell 上的 UIPanGestureRecognizer 覆盖 UITableView 的滚动视图手势识别器
如何将手势识别器添加到 UITableViewCell 的 UIImage 和 UIButton?
在 UITableViewCell 中滑动手势 UIImageView