Как отфильтровать нажатие кнопки по названию кнопки в RxSwift? - PullRequest
1 голос
/ 04 июня 2019

Есть ли в любом случае, мы можем отфильтровать событие нажатия кнопки на основе названия кнопки, как показано ниже .. !!

button.rx.tap
 .filter { ($0.titleLabel.text.count)!> 0 }

Ответы [ 2 ]

0 голосов
/ 06 июня 2019

Наконец-то смог сделать, как показано ниже, не уверен, где это идеально или нет, но служит цели, хотя .. !!!

 button.rx.tap
                  .map(return button.titleLabel?.text!.lowercased()!)
                        .asDriver(onErrorJustReturn: "")
                        .drive(answerLabel.rx.text)
                        .disposed(by: bag)
0 голосов
/ 04 июня 2019

Может быть способ сделать это, но это не правильно. Вы программно изменили заголовок кнопки, так что код, который это делает, должен быть указан здесь. Не используйте свой взгляд, как если бы это была модель.

Например:

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 }
}
...