프로젝트를 진행하면서 스토리보드를 이용하여 빠르게 Library(Shift-Command-L)를 활용하여 다양한 코드 조각과 요소들을 추가했습니다. 그러나 프로젝트 규모가 커짐에 따라 스토리보드를 열 때 렉이 발생하고 작은 수정이라도 컴파일해야 하는 번거로움이 느껴졌습니다. 더불어 팀원들과의 협업에서 코드 기반으로 작업하는 것이 효율적이라는 조언도 받았습니다. 이러한 경험을 토대로 앞으로는 코드로 새로운 프로젝트를 시작하여 효율적으로 작업하고자 합니다.
var tableView: UITableView = {
let tableview = UITableView()
return tableview
}()
view.addSubview(tableView)
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
tableView.frame = view.bounds
}
var tableView: UITableView = {
let tableview = UITableView()
tableview.register(AnalyzeTableViewCell.self, forCellReuseIdentifier: "cell")
return tableview
}()
이 이후에 방법은 스토리보드에서 TableView을 구성하는 방법과 동일합니다.
TableView 및 커스텀 TableViewCell을 생성하고 연결하기 위해 다음 단계를 따라 진행하려고 합니다.
UITableViewCell.swift 파일 생성
초기화 코드
스토리보드에서는 셀을 디자인하고 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에서 디자인한 사용자 정의 셀을 로드할 때 필요한 초기화 작업을 수행할 수 있도록 하기 위한 것입니다.