RxCocoa를 사용하여 UITableViewCell을 구성하는 방법
4가지 방법이 있다.
출처
https://github.com/RxSwiftCommunity/RxDataSources
각각 언제 사용하는가?
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 임)