iOS/RxSwift

RxSwift 제일 간단한 테이블뷰 만들기

Developer-Michelle 2023. 2. 14. 14:38

RxSwift 제일 간단한 테이블뷰 만들기

without tableview 기본 메서드 (cellForRowAt, numberOfRowsInSection이 필요없음)

 

import UIKit
import RxSwift
import RxCocoa

class MainViewController: UIViewController, UITableViewDelegate {
    
    @IBOutlet weak var tableView: UITableView!
    //원래 tableViewItems = ["Item 1", "Item 2", "Item 3", "Item 4"]인데 이걸 Observable 시퀀스로 아래와 같이 변환
    let tableViewItems = Observable.just(["Item 1", "Item 2", "Item 3", "Item 4"]) //just: Observable이 4개의 요소만 방출한다는 것을 의미
    let disposeBag = DisposeBag()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        tableViewItems
            .bind(to: tableView
                .rx
                .items(cellIdentifier: "myCell")) {
                    (tv, tableViewItems, cell) in
                    cell.textLabel?.text = tableViewItems
                } //클로저 부분에서 cellForRowAt 메서드 역할을 대신한다고 생각하면 됨
                .disposed(by: disposeBag) //RxSwift에서의 메모리 관리
    }
    
}