Storyboard 없이 프로젝트 진행하기 (UITableView, UITableViewCell)

개발렬·2023년 11월 13일
0

UIKit

목록 보기
5/6
post-thumbnail

프로젝트를 진행하면서 스토리보드를 이용하여 빠르게 Library(Shift-Command-L)를 활용하여 다양한 코드 조각과 요소들을 추가했습니다. 그러나 프로젝트 규모가 커짐에 따라 스토리보드를 열 때 렉이 발생하고 작은 수정이라도 컴파일해야 하는 번거로움이 느껴졌습니다. 더불어 팀원들과의 협업에서 코드 기반으로 작업하는 것이 효율적이라는 조언도 받았습니다. 이러한 경험을 토대로 앞으로는 코드로 새로운 프로젝트를 시작하여 효율적으로 작업하고자 합니다.

TableView

  1. TableView 생성
    TableView를 선언하기 위해 클로저를 활용한 즉시 실행되는 코드 블록을 생성하여 UITableView 프로퍼티를 초기화합니다. 이 방식은 IIFE(Immediately Invoked Function Expression)로 알려져 있습니다.
var tableView: UITableView = {
	let tableview = UITableView()

	return tableview
}()
  1. TableView를 view에 넣기
view.addSubview(tableView)
  1. TableView 레이아웃 정하기
    재 뷰와 동일한 크기로 설정되도록 다음과 같이 구현하였습니다.
override func viewDidLayoutSubviews() {
	super.viewDidLayoutSubviews()
	tableView.frame = view.bounds
 }
  1. TableViewCell 등록하기
    "AnalyzeTableViewCell"이라는 커스텀 셀을 생성하고 등록해 주었습니다. 만약 기본 셀을 사용하고 싶다면 "UITableViewCell"로 등록하면 됩니다.
var tableView: UITableView = {
	let tableview = UITableView()

	tableview.register(AnalyzeTableViewCell.self, forCellReuseIdentifier: "cell")

	return tableview
}()

이 이후에 방법은 스토리보드에서 TableView을 구성하는 방법과 동일합니다.

커스텀 TableViewCell

TableView 및 커스텀 TableViewCell을 생성하고 연결하기 위해 다음 단계를 따라 진행하려고 합니다.

  1. UITableViewCell.swift 파일 생성

  2. 초기화 코드
    스토리보드에서는 셀을 디자인하고 IBOutlet, IBAction을 사용하여 코드와 연결합니다. 그러나 코드로 작업할 때는 초기화를 직접 수행해야 합니다. UITableViewCell이 인스턴스화될 때 초기 설정이나 레이아웃을 수행하기 위한 것입니다.

override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
    super.init(style: style, reuseIdentifier: reuseIdentifier)
}

required init?(coder: NSCoder) {
	fatalError()
}

required init은 필수 생성자를 나타냅니다. 서브 클래스에서 반드시 구현되어야 하는 생성자로, 주로 "인터페이스 빌더 또는 스토리보드로부터 초기화"될 때 호출됩니다. 이 생성자는 주로 Interface Builder에서 디자인한 사용자 정의 셀을 로드할 때 필요한 초기화 작업을 수행할 수 있도록 하기 위한 것입니다.

profile
iOS, Flutter를 공부해 보자

0개의 댓글

관련 채용 정보