如何使表格单元格展开和折叠

时间:2019-01-23 05:38:21

标签: ios swift tableview

我有三个表格视图单元格,到期日期单元格在选择时应扩展为200,而在未选择时应扩展为44(默认)。由于某些原因,它不会扩展。

我无法在AutoLayout中执行此操作,因为必须对其进行更改,因此我尝试使用switch语句,并且当它位于特定的索引路径上时,它应该扩展,但是无法正常工作。

override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    let normalCellHeight = CGFloat(44)
    let largeCellHeight = CGFloat(200)

    switch(indexPath) {
    case [1,0]: // Due Date Cell
        return isPickerHidden ? normalCellHeight : largeCellHeight

    case [2,0]: // Notes Cell
        return largeCellHeight

    default: return normalCellHeight

    }
}

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    switch(indexPath) {
    case [2,0]:
        isPickerHidden = !isPickerHidden

        dueDateLabel.textColor = isPickerHidden ? .black : tableView.tintColor

        tableView.beginUpdates()
        tableView.endUpdates()

    default: break
    }
}

预期结果: 点击“到期日期”单元格,单元格展开以显示日期选择器

实际结果: 单元格突出显示,但不展开。

2 个答案:

答案 0 :(得分:3)

尝试重新加载<input id="input-id" list="datalist-id" type="text" placeholder="Select Cluster Group" autocomplete="off" /> <datalist id="datalist-id"> <div ng-repeat="country in Countries"> <option> {{country.name}} </option> </div> </datalist> didSelectRowbeginUpdates上的单元格。 请看下面的示例代码。根据需要选择行实景动画。

endUpdates

答案 1 :(得分:0)

在didSelectRowAt委托中重新加载单元格

    override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        switch(indexPath) {
        case [2,0]:
            isPickerHidden = !isPickerHidden

            dueDateLabel.textColor = isPickerHidden ? .black : tableView.tintColor

            tableView.reloadRows(at: [indexPath], with: .top)

            default: break
        }
    }