꺼이꺼이꺼이꺼이 이게 되네 ㅋㅋ
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가지 부분이 추가됐다
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 수만큼 셀을 생성 가능