1. IndexSet 생성
2. IndexSet에 현재 선택한 index 추가
3. 해당 IndexSet 으로 tableView reload
- IndexSet에 포함된 인덱스의 row 또는 section만 리로드하겠다는 의미로, 즉 이전에 선택했던 row(또는 section)과 현재 선택한 row(또는 section)만 리로드하겠다는 의미이다.
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
var indexSet = IndexSet(integer: selectedIndex)
selectedIndex = indexPath.section
indexSet.insert(indexPath.section)
tableView.reloadSections(indexSet, with: .automatic)
tableView.scrollToRow(at: indexPath, at: .top, animated: true)
}