首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从UITableView iphone获取UITableView IndexPath?

如何从UITableView iphone获取UITableView IndexPath?
EN

Stack Overflow用户
提问于 2012-08-13 21:38:38
回答 4查看 2.6K关注 0票数 2

在我的iPhone应用程序中,我有一个消息屏幕。我已经在UIViewController上添加了UITapGestureRecognizer,而且我在屏幕上也有一个UITableview。我想选择UITableViewCell,但由于UITapGestureRecognizer的原因,我无法选择UITableView。当我触摸屏幕时,只会调用点击手势操作,但不会调用UITableView委托didSelectRowAtIndexPath:。谁能帮我在敲击手势和UITableView:didSelectRowAtIndexPath:上工作。提前谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-08-13 23:18:09

虽然我更喜欢Matt Meyer的建议或我的其他使用自定义手势识别器的建议,但另一个不涉及自定义手势识别器的解决方案是让您的点击手势识别器识别您是否点击了表视图中的单元格,如果是,则手动调用didSelectRowAtIndexPath,例如:

代码语言:javascript
复制
- (void)handleTap:(UITapGestureRecognizer *)sender
{
    CGPoint location = [sender locationInView:self.view];

    if (CGRectContainsPoint([self.view convertRect:self.tableView.frame fromView:self.tableView.superview], location))
    {
        CGPoint locationInTableview = [self.tableView convertPoint:location fromView:self.view];
        NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:locationInTableview];
        if (indexPath)
            [self tableView:self.tableView didSelectRowAtIndexPath:indexPath];

        return;
    }

    // otherwise proceed with the rest of your tap handling logic
}

这是次优的,因为如果您正在对表视图做任何复杂的操作(例如,在单元格编辑、自定义控件等方面),您将丢失该行为,但如果您只是希望接收didSelectRowAtIndexPath,则这可能会完成工作。另外两种方法(独立视图或自定义手势识别器)可以让您保留完整的表视图功能,但如果您只需要一些简单的功能,而不需要表视图的其他内置功能,则可以使用此方法。

票数 6
EN

Stack Overflow用户

发布于 2012-08-13 21:46:29

您可以使用TagGesture委托:

代码语言:javascript
复制
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
    if ([touch.view isDescendantOfView:yourTableView]) {
        return NO;
    }

    return YES;
}

希望这能有所帮助。

票数 0
EN

Stack Overflow用户

发布于 2012-08-13 21:59:56

一种更简单的方法是使用两个视图:一个包含您希望点击手势打开的视图,另一个包含表格视图。您可以将UITapGestureRecognizer附加到您希望它工作的视图上,这样它就不会阻塞您的UITableView。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11935440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档