FC 9-6 커스텀 테이블뷰 셀 만들기

Challenger·2021년 9월 2일
0
post-custom-banner

꺼이꺼이꺼이꺼이 이게 되네 ㅋㅋ


import UIKit

class BountyViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
    
    let nameList = ["luffy","zoro","sanji","nami","robin","chopper","franky","brook"]
    let bountyList = [300000000, 120000000, 77000000, 16000000, 80000000, 50, 44000000, 33000000]

    override func viewDidLoad() {
        super.viewDidLoad()

    }
    

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return bountyList.count
    }
    
    // 여기가 이 셀을 반복한다 이런 곳이니까 이곳에다가 데이터를 넣는다...? 일단 dataSource니까 이쪽이 맞는 것 같긴함
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        // "cell"부분에는 tableViewCell의 식별자를 똑같이 cell로 맞춰야 함
        guard let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as? ListCell else {
            return UITableViewCell()
        }
    
    let img = UIImage(named: "\(nameList[indexPath.row]).jpg")
    cell.imgView.image = img
    cell.nameLabel.text = nameList[indexPath.row]
    cell.bountyLabel.text = "\(bountyList[indexPath.row])"
    return cell
    }

    
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        print("-->\(indexPath.row)")
        performSegue(withIdentifier: "showDetail", sender: nil)
        //모달코드
//        guard let modalVC = self.storyboard?.instantiateViewController(identifier: "ModalViewController") as? ModalViewController else {return}
//        self.present(modalVC, animated: true, completion: nil)
        
    }
}


class ListCell: UITableViewCell {
    @IBOutlet weak var imgView: UIImageView!
    @IBOutlet weak var nameLabel: UILabel!
    @IBOutlet weak var bountyLabel: UILabel!
}

이게 전체 코드인데
크게 2가지 부분이 추가됐다

  1. imageView, label에 데이터를 넣는 작업

class ListCell로 선언한 부분은 class개념을 잘 몰라서;
guard let else는 걍 if랑 비슷함

let img = UIImage(named: "\(nameList[indexPath.row]).jpg")
cell.imgView.image = img
cell.nameLabel.text = nameList[indexPath.row]
cell.bountyLabel.text = "\(bountyList[indexPath.row])"
return cell

여기 코드가 중요한데
이걸 통해 데이터를 image와 label에 넣어줄 수 있음

    return bountyList.count

또한 이걸 통해 같고 있는 리스트의 index 수만큼 셀을 생성 가능

profile
롤 챌린저의 100일 개발 도전기
post-custom-banner

0개의 댓글