使用RxSwift编码更快

人们通常谈论反应式编程,特别是RxSwift作为描述应用程序逻辑的最终方法-事件链,错误处理,异步。 但是不要忘了RxSwift还是一个工具,它允许您向任何内容添加反应式扩展。

RxSwift有一个相当大的创意社区。 RxSwiftCommunity的github配置文件当前具有55个不同大小和用途的存储库。 所有这些的根本是反应式编程。

下面我将讨论已经成为我的Podfile必需的依赖项。

Rx键盘

我们都喜欢用键盘覆盖一个密码字段,不是吗?

我不会数行代码,也不会描述我对使用NotificationCenter厌恶。 只要看看通过事件序列的概念来表达键盘高度的变化是多么酷。 让我提醒您,这里有所有Rx运算符。 您可以使用debounce ,或在此处与另一个Observable结合使用,依此类推。 这是我最喜欢的声明性代码的示例:

  RxKeyboard.instance.isHidden 
.drive(backgroundFadeView.rx.isHidden)
.disposed(作者:disposeBag)

我可以解释一下,当键盘被隐藏时,我将隐藏backgroundFadeView ;如果键盘可见,则将其显示。 但是您乍一看就知道了。

手势

UIButton不够用时,这是一种非常普遍的情况。 让我们比较一下语法:

同样,我可以解释一下,我们仅过滤.ended手势并计算翻译。 但是很明显,即使您不熟悉此框架或RxSwift。