UITableViewCell的高度基于单元格Click

时间:2017-01-07 00:01:42

标签: ios swift uitableview

我试图在单击单元格时更改UITableView的第一个UITableViewCell的高度,我已经能够在点击时改变高度,但它没有给我所需的效果,它降低了从顶部的高度细胞不是底部,我希望高度从底部减少到特定点向顶部。这是我目前正在使用的代码。

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    if indexPath.row == 0 {
        return checkHeightBasedOnVisibility()
    }else if indexPath.row == 1 {
        return 300
    }else {
        return 200
    }
}

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    if indexPath.row == 0 {



        if isVisible {
            isVisible = false
            tableView.reloadData()
        }
        else {
            isVisible = true
            tableView.reloadData()
        }
    }
}



// MARK: Private Methods
func checkHeightBasedOnVisibility() -> CGFloat {
    if isVisible {
        return 239
    }
    else {
        return 44
    }
}

2 个答案:

答案 0 :(得分:0)

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)函数看起来像这样:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    if indexPath.row == 0 {
        isVisible = !isVisible
        tableView.beginUpdates()
        tableView.endUpdates()
    }
}

答案 1 :(得分:0)

问题来自我设置的约束,我错误地将表的底部约束到不同的视图,而不是它下面的视图。