테이블 뷰에 관하여

2022. 6. 13. 10:56swift

8 - 1. 테이블뷰 컨트롤러, 뷰컨트롤러의 테이블뷰 추가의 차이점

 

TableViewController

해당TableViewController를 UITableViewController Class에 연결하면 delegate, datasource가 자동으로 지정된다.

 

ViewController

ViewController Class 가 UITableViewDelegate, datasource 프로토콜을 추가로 선언해주어야한다.

테이블뷰의 Delegate, datasource가 ViewController 자신임(Self)을 지정해야한다

 

// 8 - 2. 테이블뷰 데이타소스란?

우선 테이블 뷰를 화면에 표현하는 방법에는 두 가지가 있습니다.

1. 정적인 방법

2. 동적인 방법

 

테이블 뷰의 표현 방법을 바꾸는 것은 테이블 뷰의 인스펙터에서 Content에 있습니다.

Content종류에서 Dynamic Prototypes은 동적 statics는 정적을 뜻합니다.

 

여기서 정적인 방법이란.

바로 스토리보드에서 직접 구상하는 것을 말합니다. 

따라서 프로그래밍적으로 늘어가거나 줄어드는 일이 없을 때 정적으로 구성하는 게 좋습니다.

테이블 뷰를 정적인 방법으로 바꾸면 기존 프로토타입 셀은 사라지고 정적인 형식의 셀이 채워지게 되는데 이것을 통해서 우리가 필요한 콘텐츠를 직접 소스코드를 통해 구현할 수 있습니다.

그럼 Content를 동적, 정적으로 바꿨을 때 어떻게 바뀌는지 확인해 보겠습니다.

 

왼쪽은 동적인 Dynamic Prototypes를 뜻하고  정적인 Statics를 뜻합니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

정적인 Statics를 뜻합니다.

정적인 셀을 보면 이렇게 일일이 하나씩 하나씩 셀들을 구현할 수 있습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

테이블 뷰 데이터 소스 연동 구현하기

먼저 스위프트 파일을 만들어서 Value Obiect 패턴을 활용하여 객체를 만들어 줍니다.

 

코드로 구현 합니다. 이렇게 데이터 소스를 만들어 활용 합니다.

 

// 8 - 3. 테이블뷰 커스텀셀

복잡한 형태로 셀을 만들고 싶거나 임의로 UI 구성을 변경하고 싶으면 커스텀 타입의 프로토타입 셀을 사용합니다.

 

커스텀 셀 구현하기.

 

 

앞서 소스 코드와 비교한다면 테이블 셀에 표현해야 할 항목이 기존 두개에서 네개로 늘어났다 코드량 또한 늘었다.

 // 영화제목이 표시될 레이블

        let title = cell.viewWithTag(101) as? UILabel

        // 영화 요약이 표시될 레이블

        let desc = cell.viewWithTag(102) as? UILabel

        // 영화 개봉일이 표시될 레이블

        let opendate = cell.viewWithTag(103) as? UILabel

        // 영화 별점이 표시될 레이블

        let raing = cell.viewWithTag(104) as? UILabel

이부분으로 객체를 참조 할 수 있다.

 

 

 

 

 

그림 추가 하기

 @IBOutlet weak var thumbnail: UIImageView! //섬네일 이미지

    var img = UIImage(contentsOfFile: "최근항목")

 

     mvo.thumbnail = thumbnail   //모델에도 추가

 

("말할 수 없는 비밀", "여기서 너까지 다섯 걸음", "2015-05-07", 9.9, "isekai.jpg")] // 배열끝에 사진명을 추가해준다

//이미지 뷰 처리

cell.thumbnail.image = UIImage(named: row.thumbnail!)

 

 

 

 

'swift' 카테고리의 다른 글

연산자란?  (0) 2022.06.13
변수, 상수에 대하여  (0) 2022.06.13
함수의 매개변수를 알아보자  (0) 2022.06.06
딕셔너리를 알아보자  (0) 2022.06.06
함수  (0) 2022.06.02