gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 10:34:34 25 4
gpt4 key购买 nike

我有三个表格 View 单元格,截止日期单元格在选中时应扩展为 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
}
}

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

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

最佳答案

尝试在 beginUpdatesendUpdates 内的 didSelectRow 上重新加载单元格。看看下面的示例代码。根据需要选择行真实动画。

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

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

tableView.beginUpdates()
tableView.reloadRows(at: [indexPath], with: .none)
tableView.endUpdates()

default: break
}
}

关于ios - 如何使表格单元格展开和折叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54320628/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com