투케이2K

230. (ios/swift) tableView 테이블 뷰 및 tableViewCell 테이블 뷰 셀 사용해 커스텀 리스트 뷰 만들기 (listView) 본문

IOS

230. (ios/swift) tableView 테이블 뷰 및 tableViewCell 테이블 뷰 셀 사용해 커스텀 리스트 뷰 만들기 (listView)

투케이2K 2022. 10. 18. 09:52
반응형

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : SWIFT


[사전 설정]

 
 
 

[ViewController : 소스 코드]

import UIKit
import AppTrackingTransparency
import AdSupport
import AVFoundation

// MARK: [클래스 정의]
class ViewController: UIViewController {
    
    
    // MARK: [전역 변수 선언 실시]
    @IBOutlet weak var tableView: UITableView!
    let array = ["투케이", "TWOK", "2K"] // [타이틀 표시 정의]
    
    
    
    // MARK: [뷰 메모리 로드 수행 실시]
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        print("")
        print("===============================")
        print("[ViewController >> viewDidLoad() :: 뷰 메모리 로드 실시]")
        print("===============================")
        print("")
        
        // [테스트 함수 호출 실시]
        self.testMain()
    }
    
    
    
    
    
    // MARK: - [뷰 화면 표시]
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        print("")
        print("===============================")
        print("[ViewController >> viewDidAppear() :: 뷰 화면 표시]")
        print("===============================")
        print("")
    }
    
    
    
    
    
    // MARK: - [뷰 종료 상태]
    override func viewDidDisappear(_ animated: Bool) {
        super.viewDidDisappear(animated)
        print("")
        print("===============================")
        print("[ViewController >> viewDidDisappear() :: 뷰 종료 상태]")
        print("===============================")
        print("")
    }

    
    
    
    
    
    // MARK: - [테스트 함수 정의]
    func testMain() {
        print("")
        print("===============================")
        print("[ViewController >> testMain() :: 테스트 함수 수행]")
        print("===============================")
        print("")
        
        
        // [테이블 뷰 데이터 소스 및 딜리게이트 설정 실시]
        self.tableView.dataSource = self
        self.tableView.delegate = self
    }

} // [클래스 종료]




// MARK: [뷰 컨트롤러 extension 정의]
extension ViewController: UITableViewDataSource, UITableViewDelegate {
    
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        print("")
        print("===============================")
        print("[ViewController >> numberOfRowsInSection() :: 테이블 뷰 데이터 소스 지정]")
        print("===============================")
        print("")
        
        return self.array.count
    }
    
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        print("")
        print("===============================")
        print("[ViewController >> numberOfRowsInSection() :: 테이블 뷰 셀 컴포넌트에 데이터 매핑 실시]")
        print("===============================")
        print("")
        
        // [스토리 보드에서 지정한 테이블 뷰 셀 Identifier 설정]
        let tableViewCell = self.tableView.dequeueReusableCell(withIdentifier: "CustomTableViewCell", for: indexPath) as! CustomTableViewCell
        
        // [테이블 뷰 셀에 타이틀 텍스트 지정]
        tableViewCell.titleLabel.text = array[indexPath.row]
        
        
        // [테이블 뷰 셀 반환]
        return tableViewCell
    }
    
    
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        print("")
        print("===============================")
        print("[ViewController >> didSelectRowAt() :: 선택된 테이블 뷰 셀 정보 확인]")
        print("indexPath : \(indexPath.row)")
        print("data : \(self.array[indexPath.row])")
        print("===============================")
        print("")
    }
}
 

[CustomTableViewCell : 소스 코드]

//
//  CustomTableViewCell.swift
//  swiftTest
//
//  Created by 601559965 on 2022/10/18.
//

import UIKit

class CustomTableViewCell: UITableViewCell {
    
    
    // MARK: - [전역 변수 선언]
    @IBOutlet weak var titleLabel: UILabel!
    
    

    override func awakeFromNib() {
        super.awakeFromNib()
        print("")
        print("===============================")
        print("[CustomTableViewCell >> awakeFromNib() :: Nib 파일 준비 실시]")
        print("===============================")
        print("")
    }

    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)
        print("")
        print("===============================")
        print("[CustomTableViewCell >> setSelected() :: 커스텀 테이블 뷰 셀 선택 확인]")
        print("===============================")
        print("")
    }
    

} // [클래스 종료]
 

[결과 출력]


 

반응형
Comments