当前位置:  开发笔记 > 编程语言 > 正文

如何通过使用Rxswift获取UIImageView的Observable是空的?

如何解决《如何通过使用Rxswift获取UIImageView的Observable是空的?》经验,为你挑选了1个好方法。

我想通过使用Rxswift得到一个Observable的UIImageView是空的.

这是我的代码:

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.



1> tomahh..:

.rx.image属性上UIImageView的类型的UIBindingObserver.此类型未实现ObservableType,因此您将无法简单地编写imageView.rx.image.orDefault(defaultImage).

如果你想观察a的image属性UIImageView,你需要使用KVO.

// this is "equivalent" to `firstTextField.rx.text`
let imageObs: Observable = imageView.rx.observe(Optional.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 = imageObs.map { 
  // return defaultImage when $0 is nil
  return $0 ?? defaultImage
}

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有