0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【RxSwiftの勉強メモ】#2「ログインボタンで条件を満たしていたらボタンを活性化する」

Posted at

#この記事の目的
RxSwiftの使い方を学んでいくために簡単なサンプルを作成し記録する。
後から見直して頑張ります。
今回は
@r_chibaさんの
RxSwift入門(ハンズオン)
(https://qiita.com/r_chiba/items/5618a3dd96618222cca8#rx%E5%81%B4%E5%85%A8%E4%BD%93%E5%83%8F)
を参考にさせていただきました。(よりシンプルに、とりあえず動くものを作ろうという方針でコードを書きました。)
↓にサンプルコードを示します。

#サンプル

import UIKit
import RxSwift
import RxCocoa

class ViewController: UIViewController {
    
    @IBOutlet weak var mailTextField: UITextField!
    @IBOutlet weak var passwordTextField: UITextField!
    @IBOutlet weak var loginButton: UIButton!
    
    let disposeBag = DisposeBag()

    override func viewDidLoad() {
        super.viewDidLoad()

        mailTextField.rx.text.subscribe { (event) in
            self.changeLoginEnabled()
        }.disposed(by: disposeBag)

        passwordTextField.rx.text.subscribe { (event) in
            self.changeLoginEnabled()
        }.disposed(by: disposeBag)
        
    }
        
    private func changeLoginEnabled() {
            if mailTextField.text!.count > 0 && passwordTextField.text!.count > 0 {
                
                print("ボタン活性!")
                // ボタンの活性状態
                loginButton.isEnabled = true

                loginButton.backgroundColor = UIColor.red

            } else {
                print("ボタン非活性!")
                // ボタンの活性状態
               loginButton.isEnabled = false

               // ボタンの背景色
                loginButton.layer.backgroundColor = UIColor.secondarySystemBackground.cgColor

            }
        }
    
}

#結果
以下のように「mail」と「password」両方のテキストフィールドに文字が
1文字以上入力されるとボタンの背景が赤く変化し活性化します。
画面収録 2020-11-29 22.06.00.gif

#まとめ
比較的容易に実装ができたと思います。
まだまだ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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?