0
1

[Swift]RxSwift TextFildで入力した文字をリアルタイムで表示させる

Last updated at Posted at 2024-08-28

RxSwiftのbindメソッドを利用した実装

今回は簡単なRxSwiftの実装を行います。
初歩中の初歩ですがbindメソッドを利用して、TextFildで入力した文字をリアルタイムで表示させる実装を行います。

今回の完成イメージです。

実装コード

使用したのは
Label ✕ 1
TextFild ✕ 1
文字を入力したら、その入力した文字データが反映されるシンプルなコードです。


import UIKit
import RxSwift
import RxCocoa

final class ViewController: UIViewController {
    
    @IBOutlet private weak var nameTextFild: UITextField!
    @IBOutlet private weak var nameLabel: UILabel!
    private let disposeBag = DisposeBag()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        bind()
    }
}

extension ViewController {
    func bind() {
        nameTextFild.rx.text
            .bind(to: nameLabel.rx.text)
            .disposed(by: disposeBag)
    }
}

bindは双方向のデータバインディングを想像するが、RxSwiftの場合は単方向のデータバインディングです。
振る舞いはsubscribeとほぼ同様で値をセットすることと同じです。

// 上の実装のbind部分はこれでも対応可能です。
nameTextFild.rx.text
    .subscribe(onNext: { [weak self] text in
        self?.nameLabel.text = text
    })
    .disposed(by: disposeBag)

しかしbindにすると少しスッキリ実装できシンプルでいいと感じました。

まとめ

RxSwiftは難しいです。少しずつRxSwiftの知識を増やして行きます。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1