https://developer.apple.com/documentation/uikit/uilocalizedindexedcollation
"An object that organizes, sorts, and localizes the data for a table view that has a section index."
섹션 인덱스를 갖는 테이블 뷰에서 데이터를 조직화, 정렬, 로컬화하는 객체입니다.
@MainActor class UILocalizedIndexedCollation : NSObject
인덱스가 있는 테이블 뷰에서 데이터를 정렬, 관리하기 위해 테이블의 데이터 소스 객체와 함께 UILocalizedIndexedCollation
객체를 사용하시기 바랍니다. 인덱스는 사용자가 연속적은 컨텐트를 포함하는 테이블 뷰를 탐색하기에 이상적인 방법입니다. 예를 들어 연락처 앱은 알파벳 순으로 연락처를 정렬하고 연락처를 빠르게 탐색할 수 있도록 인덱스를 표시합니다. 테이블 뷰에서 테이블의 섹션 제목 및 인덱스 제목의 소스로 collation 객체를 사용할 수 있습니다. 테이블의 각 섹션마다 아이템을 정렬하기 위해서 이 객체를 사용할 수도 있습니다.
섹션 인덱스에 대한 데이터를 준비하려면 인덱스 collation 객체를 생성하고, 인덱싱이 될 수 있도록 각각의 모델 객체에 section(for:collationStringSelector:)
를 호출해야 합니다. 이 메소드는 이러한 각 객체가 표시되어야 하는 객체를 결정하고 섹션을 식별하는 인티저를 반환합니다. 각각의 섹션 배열에서 컨트롤러는 섹션에 있는 모든 객체를 정렬하기 위해 sortedArray(from:collationStringSelector:)
메소드를 호출합니다. 인덱스 collation 객체는 테이블 뷰에 섹션 인덱스 데이터를 제공하기 위해 테이블 뷰 컨트롤러가 사용하는 데이터 저장소가 됩니다. 아래 코드와 같습니다.
func tableView(tableView: UITableView!, titleForHeaderInSection section: Int) -> String! {
let currentCollation = UILocalizedIndexedCollation.currentCollation() as UILocalizedIndexedCollation
let sectionTitles = currentCollation.sectionTitles as NSArray
return sectionTitles.objectAtIndex(section) as String
}
func sectionIndexTitlesForTableView(tableView: UITableView!) -> NSArray! {
let currentCollation = UILocalizedIndexedCollation.currentCollation() as UILocalizedIndexedCollation
return currentCollation.sectionIndexTitles as NSArray
}
func tableView(tableView: UITableView!, sectionForSectionIndexTitle title: String!, atIndex index: Int) -> Int {
let currentCollation = UILocalizedIndexedCollation.currentCollation() as UILocalizedIndexedCollation
return currentCollation.sectionForSectionIndexTitleAtIndex(index)
}
데이터 소스 객체를 사용해서 동적으로 테이블을 위한 셀을 생성 및 설정합니다. 혹은 스토리보드로부터 정적으로 셀을 제공합니다.
https://developer.apple.com/documentation/uikit/views_and_controls/table_views/filling_a_table_with_data
https://velog.io/@panther222128/Filling-a-Table-with-Data
테이블 뷰에서 데이터를 관리하고 셀을 제공하기 위해 사용하는 객체입니다.
https://developer.apple.com/documentation/uikit/uitableviewdiffabledatasource
https://velog.io/@panther222128/UITableViewDiffableDataSource
스크롤 뷰 컨텐츠의 리프레시를 시작할 수 있는 표준 컨트롤입니다.
https://developer.apple.com/documentation/uikit/uirefreshcontrol
https://velog.io/@panther222128/UIRefreshControl