개발/iOS

RxCocoa를 사용하여 UITableViewCell을 구성하는 방법

빙수킹 2021. 6. 24. 00:13

4가지 방법이 있다.

 

출처

https://github.com/RxSwiftCommunity/RxDataSources

 

RxSwiftCommunity/RxDataSources

UITableView and UICollectionView Data Sources for RxSwift (sections, animated updates, editing ...) - RxSwiftCommunity/RxDataSources

github.com

 

 

각각 언제 사용하는가?

 

1) rx.items(dataSource:protocol<RxTableViewDataSourceType, UITableViewDataSource>)

- 아직 안써봄. dataSource를 넣어주는걸 봐선 아주 세밀한 커스텀(?)이 필요할 때 쓰일 것 같다.

 

2) rx.items(cellIdentifier:String)

- cell 커스텀 클래스를 안만들었을 때, identifier 지정하여 사용. (기본 UITableViewCell을 사용) 사용할 없을듯..

 

3) rx.items(cellIdentifier:String:Cell.Type:_:)

- 한가지 셀을 사용하여 TableView를 구성할 때 사용 (2와의 차이는 3은 cell커스텀 클래스를 만들었을 때.)

- cell이 closure의 전달인자로 넘어온다. closure에서 cell을 리턴하지 않는다. 

 

4) rx.items(_:_:)

- 다양한 셀로 TableView를 구성할 때 사용

- tableView가 closure의 전달인자로 넘어온다. closure에서 UITableViewCell을 리턴해야 한다.

 

 

주의사항

 

rx로 UITableView를 구성할 때, DataSource를 대체해주어 편리하지만 cell Register은 빼먹으면 안된다~~

이건 rx랑 상관없이 Storyboard(또는 xib)로 테이블뷰를 만들었을 경우, 그 안에 cell이 들어가있는 경우가 아니면 모두 등록해줘야 하는거다. (스토리보드에서 셀을 끌어다가 테이블뷰에 넣는 작업 == register )