Примите глобальное значение Int без инициализации.
var selectedSection: Int!
При нажатии на ячейку присвойте индекс секции ячейке selectedSection и перезагрузите эту секцию. Если вы хотите свернуть оставшиеся разделы, просто перезагрузите весь просмотр таблицы, вместо этого перезагрузите только один раздел.
selectedSection = indexPath.section
tableView.reloadSections(IndexSet(integer: selectedSection), with: .top)
В методе numberOfCellsForSection проверьте, совпадают ли раздел и selectedSection. Если они одинаковые, вам нужно свернуть раздел, что означает, что вам нужно указать исходное количество строк.