1. TableViewController를 이용한 구현
1) TableViewCell 연동
- UITableViewCell를 상속받는 클래스 생성(TableViewCell)
- TableViewController의 Cell에 identifier속성을 새로운 값으로 입력("cell")
- TableViewController의 Cell에 CustomClass 속성을 만들어둔 TableViewCell로 지정
- Cell에 추가한 컨트롤을 연결(Outlet 변수)
import UIKit
class TableViewCell: UITableViewCell {
@IBOutlet var label2: UILabel!
@IBOutlet var label1: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
}
2) TableViewController에서 데이터 적용
- TableViewController에 Override 되어있는 관련함수 수정
//section의 갯수
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
//cell 갯수
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 100
}
//cell 내용 수정
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! TableViewCell
let row = indexPath.row
cell.label1.text = String(row)
return cell
}
2. 일반 ViewController에 TableView 추가해서 구현하기
1) TableView 추가
- 일반 Viewcontroller에 TableView를 추가
2) TableViewCell 연동
- 1-1) 방법과 동일
3) TableViewController 연동
- 테이블뷰를 control을 누르고 드래그하여 ViewController에 연동(dataSource, delegate 둘다 추가), 또는
(소스코드로 구현시)
self.tableView.dataSource = self
self.tableView.delegate = self
- ViewContoller가 UITableViewDataSource, UITableViewDelegate 를 상속받게 함
- 1-2) 방법과 같은 함수들을 생성
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 3
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! TableViewCell
let row = indexPath.row
cell.label1.text = String(row)
return cell
}
}
* 주의사항
- 데이터가 셋팅되는 부분에서 다음에 self.tableView.reloadData() 를 반드시 호출해야 데이터가 보여짐!!!!!!!
'앱 개발자 역량 > IOS' 카테고리의 다른 글
Swift ] 페이스북 로그인 (0) | 2019.05.09 |
---|---|
Swift ] addSubView 내비게이션 바에 가려지는 오류 (0) | 2019.05.07 |
Swift) 이미지선택 이벤트 (0) | 2019.04.03 |
Swift) 간접적인 값 전달 (0) | 2019.04.03 |
Swift) Navigation Controller를 이용한 값전달 (0) | 2019.04.03 |