UITableView 기초: 간단한 목록 만들기
UITableView 기초: 간단한 목록 만들기
UITableView는 iOS 개발에서 매우 유용한 컴포넌트 중 하나로, 데이터를 목록 형태로 표시할 때 사용합니다. 이번 글에서는 UITableView
를 사용하여 간단한 목록을 만드는 방법을 단계별로 설명합니다. 이 튜토리얼을 마치면 여러분은 UITableView의 기본적인 설정과 사용법을 이해하게 될 것입니다.
프로젝트 설정
먼저, Xcode를 열고 새 프로젝트를 생성합니다. 프로젝트 템플릿으로 'Single View App'을 선택하고 Swift를 프로그래밍 언어로 설정해 주세요.
- 프로젝트 생성: Xcode에서 'Single View App' 템플릿으로 새 프로젝트 생성
- 언어 설정: Swift를 선택
- 유니버설 옵션: 프로젝트를 유니버설로 설정 (iPhone, iPad 지원)
UI 구성
이제 Main.storyboard
에서 UITableView
를 추가해 보겠습니다.
- 스토리보드 열기:
Main.storyboard
파일을 더블 클릭하여 엽니다. - UITableView 추가: 오른쪽 하단의 객체 라이브러리(Object Library)에서
UITableView
를 찾아서 ViewController에 드래그 앤 드롭합니다. - 제약 조건 설정:
UITableView
를 선택하고 제약 조건을 추가하여 뷰의 가장자리에 고정시킵니다.
뷰 컨트롤러와 UITableView
간의 연결을 설정하려면 다음 단계를 따르세요.
-
ViewController.swift 파일 열기:
ViewController.swift
파일을 엽니다. -
UITableView 아웃렛 생성:
swiftimport UIKit class ViewController: UIViewController { @IBOutlet weak var tableView: UITableView! override func viewDidLoad() { super.viewDidLoad() // 기타 초기 설정 } }
-
스토리보드에서 연결:
Main.storyboard
로 돌아가서ViewController
의UITableView
를 아웃렛에 연결합니다.
데이터 소스 및 델리게이트 설정
UITableView
를 작동시키기 위해서는 데이터 소스와 델리게이트를 설정해야 합니다. ViewController
클래스에 UITableViewDataSource
와 UITableViewDelegate
프로토콜을 채택하도록 합니다.
-
프로토콜 채택:
swiftclass ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate { @IBOutlet weak var tableView: UITableView! override func viewDidLoad() { super.viewDidLoad() tableView.dataSource = self tableView.delegate = self } func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return 10 // 예제 데이터 수 } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) cell.textLabel?.text = "Row \(indexPath.row + 1)" return cell } }
-
셀 재사용 식별자 설정: 스토리보드에서
UITableViewCell
을 선택하고, 속성 창에서 재사용 식별자를cell
로 설정합니다. -
셀이 없는 경우 대비: 기본적으로
dequeueReusableCell
메서드는 반드시 설정된 셀 식별자를 반환해야 합니다. 위 코드에서는cell
식별자를 가진 셀을 반환하도록 설정합니다.
기본적인 목록 데이터 설정
이제 UITableView
에서 목록 데이터를 효과적으로 표시하기 위해 기본 데이터를 설정해 보겠습니다. 예제에서는 정적인 문자열 배열을 사용합니다.
-
데이터 배열 추가:
swiftclass ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate { @IBOutlet weak var tableView: UITableView! let data = ["Apple", "Banana", "Cherry", "Date", "Fig", "Grape", "Honeydew"] override func viewDidLoad() { super.viewDidLoad() tableView.dataSource = self tableView.delegate = self } func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return data.count } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) cell.textLabel?.text = data[indexPath.row] return cell } }
-
테이블 갱신:
viewDidLoad
메서드에서tableView.reloadData()
를 호출합니다. 이를 통해 데이터 소스 배열이 변경되었을 때 테이블 뷰가 갱신됩니다.
사용자 인터페이스 개선
기본적인 설정이 끝났으니, 이제 사용자 인터페이스를 개선하기 위해 몇 가지 추가 설정을 해보겠습니다.
-
커스텀 셀 디자인:
- 스토리보드에서
UITableViewCell
을 선택하고, 커스텀 스타일을 적용합니다. - 필요한 경우 셀에 이미지를 추가하거나 상세 라벨을 추가할 수 있습니다.
- 스토리보드에서
-
동적 높이 조정:
swifttableView.estimatedRowHeight = 44.0 tableView.rowHeight = UITableView.automaticDimension
-
셀 선택 시 행동 지정:
swiftfunc tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { let selectedItem = data[indexPath.row] print("Selected item: \(selectedItem)") }
이제 UITableView
의 기본 설정과 데이터 소스, 델리게이트를 활용하여 간단한 목록을 만들 수 있습니다. 이 튜토리얼이 UITableView
를 이해하는 데 도움이 되었기를 바랍니다.