import UIKit
class ViewController: UIViewController {
let list = Region.generateDate()
@IBOutlet weak var listTableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
}
}
extension ViewController: UITableViewDataSource {
func numberOfSections(in tableView: UITableView) -> Int {
list.count
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return list[section].contries.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
let target = list[indexPath.section].contries[indexPath.row]
cell.textLabel?.text = target
return cell
}
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
return list[section].title
}
}
extension ViewController: UITableViewDelegate {
func tableView(_ tableView: UITableView, willSelectRowAt indexPath: IndexPath) -> IndexPath? {
return indexPath
}
}
오른쪽에 보면 초성이 있는데 그것을 Section Index Title이라고 합니다.
func sectionIndexTitles(for tableView: UITableView) -> [String]? {
return stride(from: 0, to: list.count, by: 1).map { list[$0].title }
}
override func viewDidLoad() {
super.viewDidLoad()
listTableView.sectionIndexColor = UIColor.blue
listTableView.sectionIndexBackgroundColor = UIColor.lightGray
listTableView.sectionIndexTrackingBackgroundColor = UIColor.systemPink
}
import UIKit
class ViewController: UIViewController {
let list = Region.generateDate()
@IBOutlet weak var listTableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
listTableView.sectionIndexColor = UIColor.blue
listTableView.sectionIndexBackgroundColor = UIColor.lightGray
listTableView.sectionIndexTrackingBackgroundColor = UIColor.systemPink
}
}
extension ViewController: UITableViewDataSource {
func numberOfSections(in tableView: UITableView) -> Int {
list.count
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return list[section].contries.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
let target = list[indexPath.section].contries[indexPath.row]
cell.textLabel?.text = target
return cell
}
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
return list[section].title
}
func sectionIndexTitles(for tableView: UITableView) -> [String]? {
return stride(from: 0, to: list.count, by: 1).map { list[$0].title }
}
func tableView(_ tableView: UITableView, sectionForSectionIndexTitle title: String, at index: Int) -> Int {
return index
}
}
extension ViewController: UITableViewDelegate {
func tableView(_ tableView: UITableView, willSelectRowAt indexPath: IndexPath) -> IndexPath? {
return indexPath
}
}