Jiwift

[iOS/Swift] UITableViewCell 코드로 구현 본문

iOS Dev/UIKit

[iOS/Swift] UITableViewCell 코드로 구현

지위프트 2024. 7. 18. 10:22
반응형

iOS 개발자라면 누구나 알고 있어야 하는 코드 방식으로 UITableViewCell을 구현하는 코드

 

스토리보드 방식이 아닌 코드로 구현하기 위한 Class를 기록합니다. 

import UIKit

class TestTableViewCell: UITableViewCell {
    
    // 초기화 메서드. 스타일과 재사용 식별자를 매개변수로 받아 초기화를 수행합니다.
    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)
        self.commonInit()  // 공통 초기화 작업을 수행하는 메서드 호출
    }
    
    // 초기화 메서드 (NSCoder를 사용한 초기화). 스토리보드나 xib 파일을 통해 생성된 경우 사용됩니다.
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    // Nib 파일로부터 객체가 초기화된 후 호출되는 메서드입니다.
    override func awakeFromNib() {
        super.awakeFromNib()
        // 추가적인 초기화 작업을 여기에 작성할 수 있습니다.
    }

    // 셀의 선택 상태가 변경될 때 호출되는 메서드입니다.
    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)
        // 선택 상태 변경 시 추가 작업을 여기에 작성할 수 있습니다.
    }
    
    // 공통 초기화 작업을 수행하는 메서드입니다.
    private func commonInit() {
        // 공통 초기화 코드를 여기에 작성합니다.
    }
}

 위는 TableViewCell을 구성하는 코드입니다. 초기 선언들만 넣어두었습니다. 원하는 구현에 따라서 채워가며 사용하면 됩니다. 

 

 

let tableView: UITableView = UITableView()

tableView.register(TestTableViewCell.self,
				   forCellReuseIdentifier: "TestTableViewCell")

TableView에서 register하는 부분입니다. 

 

let cell = self.tableView.dequeueReusableCell(withIdentifier: "TestTableViewCell",
                                              for: indexPath) as! TestTableViewCell

UITableViewDataSource - cellForRowAt에서 사용하는 코드 예시입니다. 

 

let indexPath = IndexPath(row: number, section: 0)

if let cell = self.tableView.cellForRow(at: indexPath) as? TestTableViewCell {
    // 동작 수행
}

원하는 Cell을 호출하여 동작을 수행하는 코드입니다. 

 

 

코드만 알고있으면 스토리보드와 크게 다른 부분이 없기 때문에 설명은 많이 없습니다. 

반응형