Анимация при сворачивании ячейки Static Cells
Как правильно добавить анимацию для разворачивания/сворачивания DatePicker по тапу на ячейке? Попробовал простым путем, на мой взгляд:
import UIKit
class tableTableViewController: UITableViewController {
var tap = false
override func viewDidLoad() {
super.viewDidLoad()
}
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if indexPath.row == 0 {
tap = !tap
//tableView.reloadRows(at: [indexPath], with: .none)
}
tableView.beginUpdates()
tableView.endUpdates()
tableView.reloadData()
}
override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
if indexPath.row == 1 {
if tap {
return tableView.rowHeight
} else {
return 0
}
}
return tableView.rowHeight
}
}
но заголовок второй секции Static Cells перемещается сразу без анимации. (На приложенном gif, думаю это видно.) Если использовать tableView.reloadRows(), то эффект такой же.
Ответы (1 шт):
Автор решения: Oleg Soloviev
→ Ссылка
Попробуйте так:
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if indexPath.section == 0, indexPath.row == 0 {
tap = !tap
tableView.reloadRows(at: [IndexPath(row: 1, section: 0)], with: .none)
}
}
override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
if indexPath.section == 0, indexPath.row == 1 {
return (tap ? 163 : 0)
}
return super.tableView(tableView, heightForRowAt: indexPath)
}
