我想通过使用Rxswift获取UIImageView的Observable为空。
这是我的代码:
let usernameValid = firstTextField.rx.text.orEmpty
.map { $0.characters.count >= 1 }
.shareReplay(1)
let passwordValid = secondTextField.rx.text.orEmpty
.map { $0.characters.count >= 1 }
.shareReplay(1)
let everythingValid = Observable.combineLatest(usernameValid, passwordValid) { $0 && $1 }
.shareReplay(1)
everythingValid.bindTo(submitButton.rx.isEnabled).addDisposableTo(disposeBag)
我希望像usernameValid一样获得类似的Observable。
答案 0 :(得分:8)
.rx.image
上的UIImageView
属性属于UIBindingObserver
类型。此类型未实现ObservableType
,因此您无法简单地编写imageView.rx.image.orDefault(defaultImage)
。
如果您想观察image
的{{1}}属性,则需要使用KVO。
UIImageView
您还可以将// this is "equivalent" to `firstTextField.rx.text`
let imageObs: Observable<UIImage?> = imageView.rx.observe(Optional<UIImage>.self, "image")
// default image will act in the same way the empty string is used in the case of `orEmpty`
let defaultImage = UIImage(named: "defaultImage")!
let imageWithDefaultObs: Observable<UIImage> = imageObs.map {
// return defaultImage when $0 is nil
return $0 ?? defaultImage
}
属性编写为isEmpty
Reactive
答案 1 :(得分:0)
迅速5
val justView = inflater.inflate(R.layout.mybutton, null, false) as TextView
ayatList.addView(justView)
justView.setText("OK")