主页 > 创业  > 

ReactiveSwift模拟登录功能

ReactiveSwift模拟登录功能

通过使用ReactiveSwift模拟一个简单的登录功能,该功能如下要求:

账号不能为空密码必须大于6位

登录按钮方可点击

LoginViewModel:

import ReactiveSwift class LoginViewModel { // 创建两个信号 let userName = MutableProperty<String>("") let password = MutableProperty<String>("") // 是否可以操作信号 let isValid: Signal<Bool, Never> init() { // 判断条件 let isUserNameValid = userName.signal.map { !$0.isEmpty} let isPasswordValid = password.signal.map { $0.count >= 6} isValid = Signal bineLatest(isUserNameValid, isPasswordValid) .map{$0 && $1} .skipRepeats() } }

LoginViewController

let viewModel = LoginViewModel() var disposable: Disposable? override func viewDidLoad() { super.viewDidLoad() self.view.backgroundColor = UIColor.white addViewModel() } private func addViewModel() { // 互相绑定 disposable = viewModel.userName <~ nameTextField.reactive.continuousTextValues disposable = viewModel.password <~ passwordTextField.reactive.continuousTextValues viewModel.isValid.observeValues {[weak self] isValid in print("loginBtn isValid : \(isValid)") self?.loginBtn.isEnabled = isValid self?.loginBtn.backgroundColor = isValid ? UIColor.red : UIColor.lightGray } // loginBtn 按钮点击操作 } deinit { disposable?.dispose() }

这样一个简单的通过 ReactiveSwift模拟登录功能就完成。没有网络参与。

标签:

ReactiveSwift模拟登录功能由讯客互联创业栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“ReactiveSwift模拟登录功能