본문 바로가기
Study/Apple Swift

[SWIFT] Table View 1(리스트 뷰)

by Answer Choi 2016. 2. 3.
반응형


Swift에는 리스트뷰가 따로없고, Table View라는 것을 이용하여 리스트뷰를 만들 수 있습니다.




실행하면 위와 같이 빈 칸이지만


테이블 뷰에 데이터를 입력하면 데이터가 들어갑니다.


우선 테이블뷰를 만들려면 두개의 뷰가 필요합니다.





Table ViewTable View Cell 


Table View는 말 그대로 리스트 같은걸 말하고, Table View Cell은 그 안에 들어가는 레이아웃 같은 겁니다.


우선은 단순히 텍스트 하나 넣는 걸로 해보겠습니다.


Table View를 먼저 layout으로 그려줍니다.


그리고 Table View Cell을 그 위에 위치시킵니다.


그럼 아래와 같은 모양이 됩니다.


이건 합쳐진 모양

이건 Table View 모양

이건 Table View Cell입니다.


그리고 Table View Cell을 선택한 후 Id를 달아줍니다.



이제 코드로 갑니다.


먼저 protocol을 추가합니다.


1
2
3
4
5
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource{
 
......
 
}
cs


기본 UIViewControllerUITableViewDelegateUITableViewDataSource가 추가 되었습니다.


Delegate는 table에 들어갈 데이터들이 변동되면 알려주는 역할을 하고, 


DataSource는 실질적으로 들어갈 데이터들을 관리합니다.


1
2
3
var data:[String]=[]
let textCellIdentifier = "TextCell"
@IBOutlet weak var tableview: UITableView!
cs


Line 1 : Table View로 띄울 String Array입니다.


Line 2 : 방금 지정한 Table View Cell의 ID입니다.


Line 3 : Table View를 아울렛으로 뽑아줍니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
func tableView(tableview: UITableView, numberOfRowsInSection section: Int-> Int {
    return self.data.count
}
func tableView(tableview: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableview.dequeueReusableCellWithIdentifier(textCellIdentifier, forIndexPath: indexPath) as UITableViewCell
    let row = indexPath.row
    cell.textLabel?.text = data[row]
    return cell
}
    
func tableView(tableview: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    tableview.deselectRowAtIndexPath(indexPath, animated: true)
    let row = indexPath.row
    print(data[row])
}
cs

 

위 3개의 함수가 Table View에 데이터를 연결하는 역할을 합니다.


Line 1~3 : 데이터의 갯수를 반환합니다. 즉 Table 의 수입니다.


Line 4~9 : 데이터를 Table에 넣는 역할을 합니다.


Line 5 : 데이터를 넣을 Table View Cell을 정의합니다.


Line 6 : 데이터 array의 번호입니다.


Line 7 : Table View Cell에 데이터를 연결합니다.


Line 11~15 : 이 부분은 Table View에서 데이터 선택시 행동인데, 여기서는 디버그로 출력하도록 했습니다.





반응형

'Study > Apple Swift' 카테고리의 다른 글

[SWIFT] Button Text  (0) 2016.02.02
[SWIFT] Date Picker  (0) 2016.02.02
[SWIFT] 현재시간 구하기  (0) 2016.01.26
[SWIFT] Floating 연산 오류(?)  (0) 2016.01.22
[SWIFT] 네트워크 연결되어 있는지 확인하기  (0) 2016.01.21

인기글