Reactive とは
変更を監視し続けられる的な感じ?
今まで、delegateや、何やらでやっていた処理を Reactiveでは違う感じでよろしくやってくれます。
公式では
Rx is a generic abstraction of computation expressed through Observable interface.
ナイスミドルが作りました。
例えば、
UISegmentedControlでUITableViewの値を切り替える場合の処理は下記のようになります。
//
// ViewController.swift
// RxDemo
//
// Created by Shichimitoucarashi on 2018/06/02.
// Copyright © 2018年 keisuke yamagishi. All rights reserved.
//
import UIKit
import RxSwift
import RxCocoa
class ViewController: UIViewController {
@IBOutlet weak var tableView: UITableView!
@IBOutlet weak var segment: UISegmentedControl!
var items = Variable(["DEDE","LOL","LPL","DIE"])
var disposeBag = DisposeBag()
override func viewDidLoad() {
super.viewDidLoad()
let result = self.segment.rx.selectedSegmentIndex.bind { (val) in
if Int(val) == 0 {
self.items.value = ["DEDE","LOL","LPL","DIE"]
}else{
self.items.value = ["SWS","SIS","SPS","LPOP","QAQ"]
}
}
self.items
.asObservable()
.bind(to: tableView.rx.items(cellIdentifier: "Cell")) {row,element,cell in
cell.textLabel?.text = element
}.addDisposableTo(self.disposableBag)
}
}
このような感じになります。
tableViewに表示させてる、 items 変数の値を更新するだけで、切り替わります。
Reactive!
Reactive!
Reactive!
Reactive!
こんな感じです。