본문 바로가기

iOS/UIKit

[iOS] UITableView를 사용해 Cell별로 알맞는 데이터 보여주기

반응형

지난 포스팅에서 UITableView를 사용해서 화면에 Cell을 나타내도록 구현하였습니다.

https://dev-mandos.tistory.com/66

 

[iOS] UITableView를 사용해서 화면에 Cell 나타내기

UITableView TableView는 하나의 열을 사용해서 데이터를 뷰에 나타내는 View 입니다. 또한 UITableView는 UIScrollView를 상속받고 있고, 수직 스크롤만 지원합니다. TableView는 어디에 사용될까요? 아이폰의 연

dev-mandos.tistory.com

그런데, 이제 이 Cell별로 알맞는 데이터를 보여줘야겠죠?

저는 Cell에 일정의 제목을 하나씩 보여주고 싶어요.

먼저 UITableViewCell을 상속받는 class 파일을 하나 만들어주겠습니다.

이름은 PlanCell로 지어줄게요.

imageimage

지난 시간에 스토리보드로 만들어줬던 Cell을 만들어준 PlanCell과 연동시켜주도록 하겠습니다.

image

그 이후, 연동해준 Cell의 제목이 나타날 label을 IBOutlet으로 연동해주겠습니다.

image

이제 PlanCell.swift 파일에 titleLabel의 text 프로퍼티를 변경할 수 있는 메서드를 작성해주겠습니다.

image

ViewController에서 Cell을 불러올 때, PlanCell의 configureUI(title:) 메서드를 실행시켜보도록 하겠습니다.

그 전에, cell을 불러올 때, cell의 타입이 UITableViewCell이기 때문에 PlanCell의 configureUI(title:) 메서드를 불러올 수 없어요.

스크린샷 2023-01-04 오후 3 05 43

따라서 PlanCell로 타입캐스팅을 해주고, 일정의 제목을 간단하게 indexPath.row 값으로 보여주도록 메서드를 실행시켜보겠습니다.

imageJan-04-2023 16-11-15

Cell 별로 일정의 제목을 다르게 설정해줄 수 있습니다.

그런데.. 일정의 갯수를 늘리고 UISwitch를 on/off 해보겠습니다.

Jan-04-2023 16-19-38

이상한 점을 느끼셨나요??

스크롤을 하면서 Switch의 값이 이상하게 나타나고 있습니다..

이것은 UITableViewCell이 재사용되기 때문인데요, 다음 포스팅에서는 이 문제를 해결하는 방법에 대해 알아보도록 하겠습니다.

지적 댓글 환영입니다.

반응형