[RxSwift] RxSwiftClone: UITableView Setup

Junyoung Park·2022년 12월 23일
0

RxSwift

목록 보기
9/25
post-thumbnail
post-custom-banner

[Part-1]Model View ViewModel(MVVM) pattern using RxSwift 2022

RxSwiftClone: UITableView Setup

구현 목표

  • UITableViewRx 바인딩

구현 태스크

핵심 코드

    let users: BehaviorSubject = .init(value: [UserModel]())
  • 컴바인 프레임워크의 CurrentValueSubject와 동일한 동작
    private var disposeBag = DisposeBag()
  • 컴바인 프레임워크의 AnyCancellables와 상동
private func bind() {
        tableView
            .rx
            .setDelegate(self)
            .disposed(by: disposeBag)
        viewModel
            .users
            .bind(to: tableView.rx.items(cellIdentifier: UserTableViewCell.identifier, cellType: UserTableViewCell.self)) { _, model, cell in
                cell.configure(with: model)
            }
            .disposed(by: disposeBag)
        
    }
  • RxCocoa 프레임워크가 제공하는 bind 메소드를 통해 특정 UI 컴포넌트의 rx에 달려 있는 아이템과 결합, UI를 그리기
  • rx.items로 연결된 구문을 통해 현재 테이블 뷰의 셀을 리턴
  • 메모리 누수를 방지하기 위한 disposed

구현 화면

profile
JUST DO IT
post-custom-banner

0개의 댓글