我有一个自定义的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)
答案 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()
}
}