[iOS] 테이블뷰 선택한 셀로 자동 포커스

RudinP·2024년 7월 4일
0

Study

목록 보기
246/258

1. IndexSet 생성

2. IndexSet에 현재 선택한 index 추가

3. 해당 IndexSet 으로 tableView reload

  • IndexSet에 포함된 인덱스의 row 또는 section만 리로드하겠다는 의미로, 즉 이전에 선택했던 row(또는 section)과 현재 선택한 row(또는 section)만 리로드하겠다는 의미이다.

4. scrollToRow로 현재 indexPath를 .top으로

//selectedIndex는 전역변수로 선언해둠
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)
        
}
profile
iOS 개발자가 되기 위한 스터디룸...

0개의 댓글