多次点击自定义tableViewCell

时间:2017-06-08 09:16:16

标签: ios uitableview

我有一个自定义的tableView单元格,当我单击单元格时,单元格的高度会增加(单元格会扩展):

 var selectedIndex:IndexPath?
    var isExpanded = false

    func didExpandCell(){

        self.isExpanded = !isExpanded
        self.TableView.reloadRows(at: [selectedIndex!], with: .automatic)
    }


func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
       self.selectedIndex = indexPath
        self.didExpandCell()
    }

我想第二次单击该单元格并转到另一个视图控制器;这有可能吗?

self.performSegue(withIdentifier: "details", sender: tableView)

2 个答案:

答案 0 :(得分:1)

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)方法中,您必须检查单元格是否展开。如果它已展开,请尝试拨打self.performSegue(withIdentifier: "details", sender: tableView)。如果不是,那么实现代码以扩展单元格。

答案 1 :(得分:1)

除了检查isExpanded状态之外,这是另一种方式:
didSelectRowAt中,设置一个条件来检查所选单元格的高度是否等于扩展的单元格高度(例如,如果展开的单元格高度设置为100静态)。如果YES,请致电performSegue

以下只是逻辑的伪代码:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

   let cell = getCellForIndexPath(indexPath)

   if cell.frame.size.height == 100 { // 100 is assumed to be static height for expanded cell. If it is dynamic, compare with normal cell height
      performSegue()
   } else {
      self.didExpandCell()
   }
}