单击TableView部分中的任意位置后如何执行segue?

Posted

技术标签:

【中文标题】单击TableView部分中的任意位置后如何执行segue?【英文标题】:How to perform segue after clicking anywhere in a section of TableView? 【发布时间】:2016-05-13 16:59:37 【问题描述】:

在我的应用中有一个包含五个部分的 tableView。第 5 部分的标题为“注释”,单元格的文本为“单击此处添加注释”。单击单元格后,应用程序会使用 textView 转到另一个视图控制器。为了使其更加用户友好,我希望当用户单击标题标题下方的任意位置(屏幕截图中的黄色区域)时,应用程序可以转到 textView。无论如何要这样做?我的代码:

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) 

    switch indexPath.section 

// case 0 - 3

    case 4:

        self.performSegueWithIdentifier("toTextView", sender: self)

    default: break


    


tableview image

【问题讨论】:

“标题下方”不是您已经在处理的单元格吗?你到底在问什么?你有什么问题? 嗨 rmaddy,感谢您再次回答我的问题。我的意思是现在用户必须点击单元格。如果他们单击单元格下的其他位置,则不会发生任何事情。我不认为这是用户友好的。我希望用户单击该单元格下的任何位置,它将执行转场。这可能听起来很奇怪,但无论如何要这样做? “牢房下”是什么意思?那里不是还有一个牢房吗? 大家好,第 5 节中只有一行带有“点击添加注释”的文字。如果单击此单元格,它将转到 textView。但是在 tableView 中的这个单元格下面有行,我希望它在单击其中任何一个时也可以转到 textView。 当第 4 节中的单元格被选中时,您提供的开关不会转吗?这不是你想要的吗? 【参考方案1】:

在您的didSelectRowAtIndexPath() 函数中,您可能希望在执行任何代码之前检查所选行的部分。我已经包含了一个示例条件,它将放在您的 didSelectRowAtIndexPath() 方法中。

if indexPath.section == 4 
    // Perform Your Segue HERE //

【讨论】:

【参考方案2】:

你是说tableView的footerView吗?如果要处理 footerView 上的点击事件,请考虑在其上添加一个 tapGestureRecongizer。

    func tableView(tableView: UITableView, willDisplayFooterView view: UIView, forSection section: Int) 
        let tapGestureRecongizer = UITapGestureRecognizer(target: self, action: #selector(handleGesture(_:)))
        view.addGestureRecognizer(tapGestureRecongizer)
    

    func handleGesture(gestureRecongnizer: UITapGestureRecognizer) 
        self.performSegueWithIdentifier("toTextView", sender: self)
    

【讨论】:

以上是关于单击TableView部分中的任意位置后如何执行segue?的主要内容,如果未能解决你的问题,请参考以下文章

如何快速更新某个位置的 tableview 项目?

单击页面上的任意位置后,Android中的进度条未显示

python 如何实现运行后单击屏幕的任意位置返回鼠标点击坐标的位置?

在Swift中单击后修改tableview中的单元格内容

如何知道 tableview iPad 中的部分索引

reloadData后无法单击tableView单元格中的按钮