如何在 RxSwift 中过滤带有按钮标题的按钮点击?
Posted
技术标签:
【中文标题】如何在 RxSwift 中过滤带有按钮标题的按钮点击?【英文标题】:How to filter button tap with button title in RxSwift? 【发布时间】:2019-06-04 11:22:18 【问题描述】:我们是否可以根据按钮标题过滤按钮点击事件,如下所示..!!
button.rx.tap
.filter ($0.titleLabel.text.count)!> 0
【问题讨论】:
您提供的代码有什么问题?它应该工作。这不工作吗? @Zich 不,它不起作用,我刚刚添加了明确的问题 【参考方案1】:可能有办法做到这一点,但这不是正确的做法。您以编程方式更改了按钮标题,因此应在此处引用执行此操作的代码。不要把视图当作模型来使用。
例如:
func example(title: Observable<String>, button: UIButton, bag: DisposeBag) -> Observable<String>
title
.bind(to: button.rx.title(for: .normal))
.disposed(by: bag)
return button.rx.tap
.withLatestFrom(title)
.filter !$0.isEmpty
【讨论】:
【参考方案2】:终于能够做到以下几点,不知道它的完美与否,但服务于目的..!!!
button.rx.tap
.map(return button.titleLabel?.text!.lowercased()!)
.asDriver(onErrorJustReturn: "")
.drive(answerLabel.rx.text)
.disposed(by: bag)
【讨论】:
以上是关于如何在 RxSwift 中过滤带有按钮标题的按钮点击?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 RxSwift 中为整个应用程序中的单元格和按钮设置动画?